如何在现有的检出中“--reference”本地git存储库

3
当使用git clone从远程存储库克隆时,我可以使用--reference为git提供提示,告诉其存在一个类似的本地存储库,其中某些对象可以被找到并共享。这样可以节省网络带宽和存储成本。
但是如果我已经有两个克隆自远程存储库的存储库ab,我如何事后实现相同的效果,使a表现出就像它是使用--reference=b克隆的呢?
(这样做不能节省带宽,但会释放一些磁盘空间。)
1个回答

0

只使用git-command,我会:

  1. b本地克隆到c(如果可能的话,重用硬链接的公共对象)。

  2. c中,将a添加为远程仓库,并从a获取差异。在c中创建所需的分支和远程。

  3. c替换a

类似的事情也可以通过链接公共对象(rsync --hard-linkcp -l)和git-gc来实现。不过我还没有完整的解决方案。


谢谢,但我想避免这样的操作,保持存储库的元数据(分支、远程、索引、正在进行的变基等)和工作副本不受影响。 - Joachim Breitner
也许只需在两个.git/objects之间链接文件。 - Jokester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接