我发现GitHub有Create Tree和Create File API,但我仍然不确定如何为Create Tree Api创建子模块项目,如何为创建文件指定Sha, Api,看来我们不能设置项目类型。顺便说一句,我需要先创建.gitmodules文件吗?如何在GitHub中使用GitHub Rest Api创建子模块
2
A
回答
4
今天早些时候我试图做到这一点。
这是我的工作流程:
让我举一个小例子,以使其更清晰。
说你想要添加子模块的仓库的master
分支上的最新提交是$BASE_SHA
。
1.创建一个树
假设你没有对你的回购的子模块,然而,你需要创建一个名为.gitmodules
第一个文件。然后你可以创建一个对它的引用。
POST /repos/:owner/:repo/git/trees
{
"base_tree": $BASE_SHA,
"tree": [
// create submodule config
{
"path": ".gitmodules",
"mode": "100644",
"type": "blob",
"content": "[submodule \"rails\"]\n\tpath = rails\n\turl = https://github.com/rails/rails"
},
// link to submodule
{
"path": "rails",
"mode": "160000",
"type": "commit",
"sha": "39e087cbf5628ecc351fc86a3a1e320be193bf29"
}
]
}
的API服务器将发送给您回应
{
"sha": $TREE_SHA,
"url": "...",
"tree": [...]
}
2.创建一个提交
然后,我们用的的sha
新创建的树吃掉一个提交(以$BASE_SHA
作为其父)。
POST /repos/:owner/:repo/git/commits
{
"message": "commit message",
"tree": $TREE_SHA,
"parents": [$BASE_SHA]
}
,服务器将返回
{
"sha": $COMMIT_SHA,
"url": "...",
// other content omitted here ..
}
3.更新参考
然后,我们需要更新master
。
PATCH /repos/:owner/:repo/git/refs/heads/master
{
"sha": $COMMIT_SHA,
"force": true
}
如果不返回错误,我们都设定。
刷新你的GitHub回购页面,你会发现添加了子模块。
+0
谢谢程宇,伟大的工作。只有一件事我发现可能需要修改的是请求方法应该是“POST”在创建一棵树 – Huachao
+0
鹰眼!刚刚更新了我的答案,谢谢指出。 –
相关问题
- 1. 创建使用GitHub的API
- 2. 如何通过github API在github中创建存储库?
- 3. 如何创建包含子模块的Github版本?
- 4. 如何结算SVN的GitHub子模块
- 5. 子模块不能在github中单击
- 6. GitHub创建REST API问题与创建者参数
- 7. GitHub的问题创建API
- 8. Github v3 API - 创建REPO
- 9. Github的API创建提交
- 10. github api v3创建树php
- 11. 如何在Postman中使用GitHub API
- 12. Github服务(Jenkins)使用Rest API
- 13. 使用Github API创建webhook无法在Django中使用请求
- 14. Git:推新创建的本地子模块高达Github和Bitbucket
- 15. Github引用子模块 - 错误的树
- 16. 如何使用android studio将子模块推送到github?
- 17. 如何在github中创建.md文件?
- 18. 如何使用GitHub API在GitHub上发布问题
- 19. 创建在github上
- 20. 子模块在github页面中的行为如何?
- 21. 如何在GitHub中定位子模块的提交?
- 22. 如何使用GitHub API v3创建提交并推入回购?
- 23. 如何使用GitHub API创建“修订页面”?
- 24. 如何使在Github上发布关于创建(API)
- 25. 如何在github上
- 26. 使用github api在javascript/jquery中创建一个链接
- 27. 如何使用Github?
- 28. 使用GitHub的API
- 29. 如何使用Python使用Github GraphQL API?
- 30. GitHub v3 API - 如何在存储库中创建初始提交?
你应该提到你试过了什么。如果你的谷歌为你的问题,你会发现第一个结果 - https://developer.github.com/v3/git/trees/ –