我希望通过浏览器在我的git存储库中更改一个文件。
我自然会去Github API看看我能做什么。 Create a commit
端点需要树对象的哈希。有没有办法在浏览器内部生成此树哈希?
我的存储库约为100Mb,因此无法在浏览器中进行克隆。有没有一种方法可以在浏览器中克隆子文件夹(稀疏签出),然后计算新的树哈希(使用isomorphic-git
之类的git-inside-browser工具)?
Github具有一个用于手动编辑其Web应用程序中的文件的UI。我正在尝试在自己的Web应用程序中重新创建相同的内容。
答案 0 :(得分:1)
无需克隆存储库。 Git Database API documentation给出了进行新提交所需的步骤:
- 获取当前提交对象
- 检索它指向的树
- 检索该树针对该特定文件路径的blob对象的内容
- 以某种方式更改内容并发布具有该新内容的新blob对象,以恢复blob SHA
- 发布一个新的树对象,并用新的blob SHA替换该文件路径指针,以重新获得树SHA
- 使用当前提交SHA作为父提交并使用新树SHA创建一个新提交对象,以重新获得提交SHA。
- 更新分支的引用以指向新的提交SHA