2013-03-06 204 views
35

我的混帳回購協議是這樣的:Git將一個分支合併到另一個分支是雙向合併?

  _ branch_a 
     /
master/
     \_ branch_b 

現在我想branch_b合併到branch_a,任一分支成高手。

所以,我做了

git checkout branch_a 
git merge branch_b 

和Git去了,發現一對夫婦的衝突。

當我使用meld我所得到的控制檯上執行git mergetool

{local}: modified file 
{remote}: modified file 

和窗口只顯示本地和遠程。

我想知道的是:

  1. 爲什麼沒有什麼是高手的共享基礎顯示?

  2. LOCAL和REMOTE之間,我應該編輯哪一個?

+7

如果你想將A合併到B,正確的命令是'git checkout branch_b git merge branch_a' – iberbeu 2013-03-06 21:28:31

+0

你使用的是什麼版本的git?當我使用meld作爲合併工具時,它將它表示爲共同基礎的三路合併。我從來沒有看到它只顯示兩個文件,所以我不知道你應該修改哪些內容。 – qqx 2013-03-06 21:42:35

+0

git version 1.8.1.2 – EMiller 2013-03-06 21:56:13

回答

11

如果您將分支A合併到分支B中,您得到的衝突來自兩個分支之間的差異,而不是與主控制器之間的差異。在A或B執行git diff會給你然而與mastere的差異,因爲它是祖先

通常情況下,當地分支應該是一個你融入遠程一合併。無論如何,在你的計算機上,你只有一份文件,所以只需修改它

+0

在技術上,'master'分支不會參與該合併。但是,在這種情況下,主人指出的承諾是因爲它是共同的祖先。 – qqx 2013-03-06 21:50:42

+0

分支(a或b)的差異取自與祖先(本例中的主)的比較,但是當您將A合併到B時,衝突由這些分支給出,而不是由主給出。這就是我的意思。我編輯了我的答案 – iberbeu 2013-03-06 21:58:08

相關問題