5
我可能沒有得到正確的東西,但任何人都可以向我解釋爲什麼git rebase
導致衝突,而git merge
(同一分支)不?Git:爲什麼rebase會導致衝突,而merge不會呢?
據我所知,git rebase
在我當前分支提交之前提交了來自其他分支的提交,而git merge
採用了相同的提交併將它們作爲補丁應用到我的分支,對吧? diff
然後不一樣,雖然也許逆轉?不知道爲什麼用其他提交修補我的分支不是問題,而用我的提交修補另一個分支。
我明白你在說什麼,但我還沒有完全掌握它。假設我的分支A已經提交了a,b和c。然後我創建分支B,提交d和e。提交f在分支A上進行。** Rebase **(在分支B上)將導致:a,b,c,f,d,e; **合併**會導致:a,b,c,d,e,f。現在如何提交f創建與提交c的合併衝突,如果它是首先在分支A上的提交c之上創建的? – minitauros
@minitauros(1)合併會導致兩個分支被連接:一個與a,b,c,f和一個與a,b,c,d,e,不是線性歷史。 (2)如果在分支A上提交的提交F沒有引入衝突,那麼當重新分配時(如果有更詳細的示例,這將非常棒),我看不出它會如何引發衝突。 (3)但是,如果D與發生衝突的F和E修正衝突,則重新生成會重新發生衝突,而合併則不會。 – coredump
好吧,那裏謝謝你的解釋!是否清除它一點。不幸的是,我現在還沒有這個例子(正如我已經修復過的那樣),但是如果我再次遇到它並且出現同樣的問題,我會用更多信息更新這篇文章:)。現在我認爲這個答案足夠好,謝謝! – minitauros