You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub GraphQL API在新建空仓库中创建Commit

在空GitHub仓库中用GraphQL API创建初始提交的方法

当仓库刚创建为空时,确实无法获取到分支ref的ID,也没有可用的head OID。这时候要创建第一个提交,你可以把expectedHeadOid设为全零的Git OID:0000000000000000000000000000000000000000,这个值对应Git中空仓库的初始状态。

具体的createCommitOnBranch mutation调用示例如下:

mutation CreateInitialCommit($input: CreateCommitOnBranchInput!) {
  createCommitOnBranch(input: $input) {
    commit {
      url
      oid
    }
    ref {
      name
      id
    }
  }
}

对应的变量需要包含以下核心内容:

  • branchName: 指定要创建的分支名(比如main)
  • expectedHeadOid: 固定设为全零OID
  • message: 提交的标题信息
  • fileChanges: 至少添加一个文件内容(初始提交不能为空)

变量示例:

{
  "input": {
    "branchName": "main",
    "expectedHeadOid": "0000000000000000000000000000000000000000",
    "message": {
      "headline": "Initial commit"
    },
    "fileChanges": {
      "additions": [
        {
          "path": "README.md",
          "contents": "# My New Repository\n\nThis is the initial commit."
        }
      ]
    }
  }
}

执行这个mutation后,GitHub会自动创建指定的分支,并将你定义的文件添加为第一个提交。之后你就能正常获取到该分支的ref和head OID,用于后续的提交操作了。

内容的提问来源于stack exchange,提问作者Ritik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:22