Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交到Github API而不克隆repo_Git_Github - Fatal编程技术网

提交到Github API而不克隆repo

提交到Github API而不克隆repo,git,github,Git,Github,我希望通过浏览器对git repo中的一个文件进行更改 我自然而然地去了医院,看看我能做些什么。创建提交端点需要树对象的散列。有没有办法在浏览器中生成此树哈希 我的repo大约为100Mb,因此在浏览器中克隆它是不可行的。有没有一种方法可以克隆一个子文件夹(稀疏签出),然后计算新的树散列,全部在浏览器中(使用git inside browser之类的工具) Github有一个UI,用于在其webapp中手动编辑文件。我正在尝试在自己的webapp中重新创建相同的内容。无需克隆存储库。提供了进行新

我希望通过浏览器对git repo中的一个文件进行更改

我自然而然地去了医院,看看我能做些什么。
创建提交
端点需要树对象的散列。有没有办法在浏览器中生成此树哈希

我的repo大约为100Mb,因此在浏览器中克隆它是不可行的。有没有一种方法可以克隆一个子文件夹(稀疏签出),然后计算新的树散列,全部在浏览器中(使用git inside browser之类的工具)


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

无需克隆存储库。提供了进行新提交所需的步骤:

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

这不是GIT的工作方式。GIT基于存储库,您永远不会更改文件,也不会更改repo(该文件只是repo中某些内容的解包表示)。所以你需要克隆它。Git hub web编辑将在服务器上的某个位置有一个repo副本。你也可以做同样的事情,但是你需要一个本地副本,在可能的地方复制