Git合并2个版本无共同祖先

Git合并2个版本无共同祖先,git,mercurial,merge,Git,Mercurial,Merge,我的源代码在mercurial repo中,而主分支已经从mercurial转移到git repo。当前git主分支负责人和我的mercurial版本存在冲突。git master是作为新回购协议创建的,不是从原始mercurial回购协议派生的。如何将我的修改与主分支的修改合并 如果我从主节点创建一个新分支,用我的mercurial源节点覆盖源节点并将其与主节点合并,git不会检测到冲突(我想是因为我们没有共同的祖先版本)我不认为它会检测到冲突。如果您从master创建一个新分支,那么您实际上

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


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

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

如果要创建一个没有历史记录(或与主分支没有关系)的新分支,则会出现预期的合并冲突。您可以创建新的孤立分支:

git checkout --orphan new_branch

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

这可能会有帮助。git checkout不会创建新分支,是吗?或者你的意思是我应该创建一个分支,然后使用--orphan
git checkout
将在给定
-b
--orphan
标志时创建一个新分支。在我的情况下,hmm不起作用:“git checkout--orphan tm”切换到一个新分支“tm”;“git log”致命:错误的默认版本“HEAD”“git branch-a master”remotes/origin/HEAD->origin/master remotes/origin/master这是您应该看到的。您刚刚创建了一个没有历史记录的分支(即,没有
HEAD
)--也称为“孤立分支”“--如果你希望没有关系,这正是你想要的。添加并提交文件后,
git log
应该只显示一次提交,即刚刚提交的一次。