2013-03-05 67 views
2

我有我的源代碼在一個mercurial回購,而主分支已經從mercurial移動到一個git回購。當前的git master分支頭和我的mercurial版本有衝突。 git master被創建爲新的repo,而不是從原始的mercurial repo派生而來。如何將我的修改與主分支的修改合併?Git合併2個版本沒有共同的祖先

如果我創建從主一個新的分支,覆蓋源與我善變的來源和與主合併它,Git並不衝突檢測(我想是因爲我們沒有共同的祖先版)

+0

http://stackoverflow.com/questions/14253594/using-git-to-merge-two-directories-with-common-parent-but-different-sha1這可能會有所幫助。 – pktangyue 2013-03-05 02:51:44

回答

2

我不會認爲它會。如果你創建一個新的分支從大師然後你其實有一個共同的祖先,而這個共同的祖先其實是掌握自己。這意味着合併結果實際上是您的新分支,因爲它是從主服務器快速轉發的。

如果您要創建一個沒有歷史記錄的新分支(或者與主數據庫沒有任何關係),那麼您會得到您期望的合併衝突。您可以創建一個新的分支孤兒:

git checkout --orphan new_branch 

而且然後複製你的源代碼從善變,你將能夠與主合併。任何兩個分支之間不相同的文件都將被標記爲衝突。

+0

git checkout不會創建新的分支嗎?或者你的意思是我應該創建一個分支,然後使用--orphan – hlitz 2013-03-05 17:03:44

+0

'git checkout'會在給出'-b'或'--orphan'標誌時創建一個新的分支。 – 2013-03-05 17:06:47

+0

在我的情況下,hmm無法正常工作:「git checkout --orphan tm」 切換到新分支'tm'「git log」 致命錯誤:錯誤的缺省修訂版本HEAD'「git branch -a master」 遙控器/產地/頭部 - >產地/主人 遙控器/產地/主人 – hlitz 2013-03-05 17:16:41

相關問題