为什么GitHub不让我们使用开箱即用的命令行创建我们的存储库?

时间:2014-06-18 07:42:08

标签: git curl github

如果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: enter image description here

注意:--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

我们已经完成并准备好提交和推送。到目前为止没有任何投诉。

1 个答案:

答案 0 :(得分:3)

关于你的第一个问题:这不是github的“限制”,而是git。 Git不是专门为github设计的,因此不支持推送到不存在的存储库。我认为github可以在服务器端破解它,但这只会为每个拼写错误创建一个回购,就像Ikke指出的那样。

如果您需要更好的命令行支持,可以使用github的hub工具:https://github.com/github/hub。使用它,您可以使用hub create创建一个仓库。

或者你可以自己创建一个包含所有必需代码的小shell脚本,只需将存储库名称作为参数。