我想在git repo中更改一个文件, 通过浏览器 .
我自然会去 Github API 看看我能做什么。这个 Create a commit 终结点需要树对象的哈希。有没有办法在浏览器中生成此树哈希?
Create a commit
我的回购协议大约为100Mb,因此在浏览器中克隆它是不可行的。有没有办法克隆一个子文件夹(稀疏签出),然后计算新的树哈希,全部在浏览器中(在浏览器工具中使用git,如 isomorphic-git )?
isomorphic-git
Github有一个UI,可以手动编辑webapp中的文件。我正试图在我自己的webapp中重新创建相同的东西。
不需要克隆存储库。这个 Git Database API documentation 提供进行新提交所需的步骤:
获取当前提交对象 检索它指向的树 检索树对该特定文件路径具有的blob对象的内容 以某种方式更改内容,并使用该新内容发布一个新blob对象,以获取blob SHA 发布一个新的树对象,并将该文件路径指针替换为新的blob SHA以获取树SHA 创建一个新的commit对象,将当前的commit SHA作为父对象,并使用新的树SHA,获取一个commit SHA 更新分支的引用以指向新的提交SHA