GithubV3API-如何在存储库中创建初始提交?

GithubV3API-如何在存储库中创建初始提交?,api,github,repository,github-api,Api,Github,Repository,Github Api,我正在使用V3API,并设法列出repos/trees/branch、访问文件内容和创建blob/trees/commits。我现在正试图创建一个新的回购协议,并设法通过“POST user/repo”实现 但是当我尝试在这个新的repo中创建blob/trees/commits/references时,我得到了相同的错误消息。(409)“Git存储库为空。”。显然,我可以自己通过git命令行初始化存储库,但更希望我的应用程序能为我这样做 有办法吗?创建空存储库后,我需要通过API做的第一件事是

我正在使用V3API,并设法列出repos/trees/branch、访问文件内容和创建blob/trees/commits。我现在正试图创建一个新的回购协议,并设法通过“POST user/repo”实现

但是当我尝试在这个新的repo中创建blob/trees/commits/references时,我得到了相同的错误消息。(409)“Git存储库为空。”。显然,我可以自己通过git命令行初始化存储库,但更希望我的应用程序能为我这样做

有办法吗?创建空存储库后,我需要通过API做的第一件事是什么


谢谢

2013年5月更新:请注意,现在授权

见“”


原始答复(2012年5月)

由于它似乎还不受支持(“,作为注释),您可以从按下初始空提交开始

git commit --allow-empty -m 'Initial commit'
git push origin master
不管怎样,这都是一个很好的实践。

如“

所示。根据GitHub博客上发布的信息,自2012年以来,现在可以在创建存储库后自动初始化存储库:

今天,我们通过GitHub API更容易将提交添加到存储库。到目前为止,您可以创建一个存储库,但在通过API添加任何提交之前,您需要通过Git客户端在本地对其进行初始化

现在,您可以选择在创建存储库时初始化存储库,方法是为auto_init参数发送true:

curl -i -u pengwynn \
     -d '{"name": "create-repo-test", "auto_init": true}' \
     https://api.github.com/user/repos 
生成的存储库将有一个自述存根和一个初始提交


如果要创建一个空的初始提交(即没有任何文件的提交),可以执行以下操作:

  • 使用Jai Pandya的答案中的
    auto_init
    选项创建存储库;或者,如果存储库已经存在,则使用创建虚拟文件-这将创建分支:
  • 放https://api.github.com/repos/USER/REPO/contents/dummy { “分支”:“主”, “消息”:“为创建分支而创建虚拟文件”, “内容”:“ZHVtbXk=” } 这将为您提供一组数据,包括提交SHA,但您可以放弃所有数据,因为我们即将删除该提交

  • 用于创建指向以下内容的提交:
  • 邮递https://api.github.com/repos/USER/REPO/git/commits { “消息”:“初始提交”, “树”:“4B825DC642CB6EB9A060E54BF8D6928FBEE4904” } 这一次,您需要注意返回的commit SHA

  • 用于使分支指向刚创建的提交(注意ForceTM的使用):
  • 补丁https://api.github.com/repos/USER/REPO/git/refs/heads/master { “sha”:“, “力量”:真实 }
  • 完成了!您的存储库现在有一个分支、一个提交和零个文件

  • 看来他们还不支持,谢谢。真奇怪,API支持创建repo,但不支持初始化它们。有趣+1.我把那棵空树记录在案 PUT https://api.github.com/repos/USER/REPO/contents/dummy { "branch": "master", "message": "Create a dummy file for the sake of creating a branch", "content": "ZHVtbXk=" } POST https://api.github.com/repos/USER/REPO/git/commits { "message": "Initial commit", "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904" } PATCH https://api.github.com/repos/USER/REPO/git/refs/heads/master { "sha": "<the SHA of the commit>", "force": true }