如果GitHub将其构建到Git Shell中,那会不会很好?
显然是Stack Overflow says we have to use cURL to do it。
curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'
# Remember replace USER with your username and REPO with your repository/application name!
git remote add origin git@github.com:USER/REPO.git
git push origin master
但它对我不起作用。如果我使用这种方法,我会获得401 Unauthorized:
注意:--cacert只是在我的根目录中包含SSL证书
槽糕。好的。然后我发现official docs使用授权令牌执行此操作:
$ curl -i -H 'Authorization: token 5199831f4dd3b79e7c5b7e0ebe75d67aa66e79d4' \
-d '{ \
"name": "blog", \
"auto_init": true, \
"private": true, \
"gitignore_template": "nanoc" \
}' \
https://api.github.com/user/repos
注意:只有"名称"根据{{3}}在-d JSON http正文中是必需的。我们可以省略其他所有内容,只需输入:
$ curl -i -H 'Authorization: token 5199831f4dd3b79e7c5b7e0ebe75d67aa66e79d4' \
-d '{ \
"name": "new_repo_name", \
}' \
https://api.github.com/user/repos
问题是......键入那个长令牌(你不能在cmd中使用CTRL-V)将首先打败使用CLI的目的。
修改
我发现developer.github.com/v3是一个非常好的解决方案。只需安装它,导航到您的github repo文件夹,然后创建一个这样的repo:
hub create new_repo_name
我们已经完成并准备好提交和推送。到目前为止没有任何投诉。
答案 0 :(得分:3)
关于你的第一个问题:这不是github的“限制”,而是git。 Git不是专门为github设计的,因此不支持推送到不存在的存储库。我认为github可以在服务器端破解它,但这只会为每个拼写错误创建一个回购,就像Ikke指出的那样。
如果您需要更好的命令行支持,可以使用github的hub
工具:https://github.com/github/hub。使用它,您可以使用hub create
创建一个仓库。
或者你可以自己创建一个包含所有必需代码的小shell脚本,只需将存储库名称作为参数。