2017-10-05 576 views
0

我想了解无关历史的合并。 Git'merge'命令有一个选项“--allow-unmatched history”来合并不相关的历史记录。我在这里错过了一些澄清。 GIT中的根文件夹称为“项目”。项目包含许多存储库。每个回购可能有几个分支。我们可以合并GIT中的2个不同项目的分支

考虑到这一切。我有两个'项目'(a,b)。在项目'a'中,我有一个叫'arepo'的回购。 'arepo'有一个分支'abranch'。同样,还有项目'b'。项目'b'有一个叫'brepo'的回购。 'brepo'有一个叫'bbranch'的分支。

下图描述了这种情况: - Unrelated branches

在这种情况下,我们可以合并“abranch”和“bbranch”使用Git的“允许无关-历史”选项合并?

在此先感谢。

+0

也许[this](https://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories)或[this](https://stackoverflow.com/questions/45272492/git -refusing-to-merge-unrelated-historories-what-is-unrelated-history)将会有所帮助 – Soenhay

回答

0

here它说:

--allow无关,历史默认情况下,git的合并命令拒绝合并没有共同的祖先的历史。当合并独立开始他们的生活的两个项目 的历史时,可以使用此选项 覆盖此安全性。由于这是非常罕见的 场合,因此默认情况下不存在配置变量 ,因此不会被添加。

所以看起来有可能通过使用--allow-unrelated-histories选项合并不相关的历史记录。

+0

非常感谢你的回应。我确实了解可能性。我的含糊不清是关于“无关的历史”。我提出的图是否是无关历史的准确范例?我想了解什么叫做“无关的历史”? –

+0

无关的历史只是意味着分支没有一个共同的祖先,就像你的图表一样。所以我会说你的图是准确的。如果项目a和b是不同的存储库,那么就git而言,即使b可能只是b的副本,它们也没有共同的祖先。 – Soenhay

+0

[这里](https://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories)是另一个可能有帮助的链接。 – Soenhay