提交到Github API而不克隆仓库

时间:2018-07-31 15:37:55

标签: git github

我希望通过浏览器在我的git存储库中更改一个文件。

我自然会去Github API看看我能做什么。 Create a commit端点需要树对象的哈希。有没有办法在浏览器内部生成此树哈希?

我的存储库约为100Mb,因此无法在浏览器中进行克隆。有没有一种方法可以在浏览器中克隆子文件夹(稀疏签出),然后计算新的树哈希(使用isomorphic-git之类的git-inside-browser工具)?

Github具有一个用于手动编辑其Web应用程序中的文件的UI。我正在尝试在自己的Web应用程序中重新创建相同的内容。

1 个答案:

答案 0 :(得分:1)

无需克隆存储库。 Git Database API documentation给出了进行新提交所需的步骤:

  
      
  • 获取当前提交对象
  •   
  • 检索它指向的树
  •   
  • 检索该树针对该特定文件路径的blob对象的内容
  •   
  • 以某种方式更改内容并发布具有该新内容的新blob对象,以恢复blob SHA
  •   
  • 发布一个新的树对象,并用新的blob SHA替换该文件路径指针,以重新获得树SHA
  •   
  • 使用当前提交SHA作为父提交并使用新树SHA创建一个新提交对象,以重新获得提交SHA。
  •   
  • 更新分支的引用以指向新的提交SHA
  •