2

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

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

4

1 回答 1

2

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

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

git checkout --orphan new_branch

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

于 2013-03-05T03:20:48.197 回答