如何从Github API创建孤立分支?

时间:2013-09-02 03:49:32

标签: git github github-api

我想从Github API创建gh-pages分支。有一个简单的方法吗?

如果没有,我将如何从Github API创建一个孤儿分支?

2 个答案:

答案 0 :(得分:2)

可以通过以下方式执行此操作:

  1. 检查分支是否已存在
  2. 如果没有,则创建一个引用git的empty tree SHA
  3. 的提交
  4. 然后为该提交创建一个引用
  5. 您可以在https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31

    中找到一些关于如何执行此操作的CoffeeScript示例代码

    以下是这样创建的一个分支:https://github.com/the-domains/example.net/tree/branch_1403616324001

    更新:此方法仅在git存储库具有以前的孤立分支时有效。如果它是使用auto_init选项通过GitHub的API创建的新创建的repo,它将无法工作。我已经联系过GitHub。

答案 1 :(得分:1)

您可以通过API的Create a Reference部分创建分支。但是,我不确定你是否可以创建一个孤立的分支,或者如果API会阻止它。

事实上,用curl测试它是行不通的:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}'
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}'

两者都返回:

{"message": "Reference update failed"}

我尝试使用和不使用Content-Type标题(-H "Content-Type: application/json"),但都没有工作。

从那个小实验中,看起来你无法通过API创建一个孤立的分支。