1

拥有一个裸露的 git 存储库如何提交新文件或修改,而无需创建克隆或拥有它的工作树。

4

3 回答 3

2

实际上,您可以在--barerepo 上运行各种 git 管道命令。但是您需要在某处创建一棵树(即使它是纯文本文件) 以制作一棵树,并且您需要在某处创建文件 blob以便将它们添加到 repo 以制作该树,并且您需要写一个指向那棵树的提交,当你完成所有这些时,你还不如在某个地方创建一个工作目录。

(然后为方便起见,您不妨将其设为非裸克隆,在拥有它们的系统上将尽可能使用硬链接,因此不会真正占用太多额外空间。)

但是是的,如果你有一个非常特殊的情况,你可以使用git hash-object将一个文件输入到 repo 并获取它的哈希,然后git mktree创建一个包含新文件(和其他现有文件)的树,然后git commit-tree编写一个提交对象, 然后git update-ref给它做一个 ref 点。(我记得这个过程在Pro Git book中有概述。)

于 2013-10-29T00:26:15.697 回答
0
  • 不必克隆就是在本地拥有一个仓库并且不与其他任何人共享。
  • 没有工作树只是有一个空的回购(它可能仍然有头)。因此,恕我直言,添加文件但没有工作树是没有意义的。
于 2013-10-29T00:22:24.100 回答
0

如果不克隆存储库,您将无法从客户端执行任何操作。对于添加新文件或修改等任何操作,您应该先克隆存储库。\

唯一的选择是通过您的 GitHub UI 进行克隆而不进行克隆。

于 2013-10-29T00:26:39.527 回答