如何在具有几乎相同历史的两个git repos之间共享对象?

时间:2014-07-28 00:01:39

标签: git

我有两个远程repos A和B.很久以前B与A分开,因此它们基本上具有相同的提交历史记录。现在我已经有一个A的本地克隆,并添加了B作为另一个遥控器,但是当我做

git fetch B

它试图从B重新下载所有对象。

有没有办法让它重新使用A中的对象,只能从B本地获取我没有的对象?

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以尝试以下步骤:

  1. repo checkout B
  2. repo checkout A
  3. repo merge B
  4. 现在只有repo B中的更改才会合并到repo A

答案 1 :(得分:0)

这听起来像git“备用对象目录”的概念 - 可以使用环境变量(GIT_ALTERNATE_OBJECT_DIRECTORIES)进行短期使用,或者.git/objects/info/alternates更永久使用。它们似乎没有被广泛记录,这使我认为在某些情况下使用它们可能并不完全简单。但它们基本上是一个单独的目录列表,可以存储特定的对象,并根据需要进行搜索以找到它们......

您可以git help gitrepository-layoutgit help git查找更多信息。