Git合并2个版本没有共同的祖先

时间:2013-03-05 00:06:33

标签: git mercurial merge

我的源代码在mercurial repo中,而master分支已经从mercurial转移到git repo。当前的git master分支头和我的mercurial版本存在冲突。 git master是作为一个新的repo创建的,而不是从原始的mercurial repo派生的。如何将我的修改与主分支的修改合并?

如果我从master创建一个新分支,用我的mercurial源覆盖源并将其与master合并,git不会检测到冲突(我想因为我们没有共同的祖先版本)

1 个答案:

答案 0 :(得分:2)

我不会认为会这样。如果你从master 创建一个新的分支,那么你实际上有一个共同的祖先,而那个共同的祖先实际上是master本身。这意味着合并结果实际上是您的新分支,因为它是来自主人的快进。

如果您要创建一个没有历史记录(或与master无关系)的新分支,那么您将获得预期的合并冲突。您可以创建一个新的孤儿分支:

git checkout --orphan new_branch

然后然后从mercurial复制您的来源,您将能够与master合并。任何两个分支之间不相同的文件都将被标记为冲突。