當git diff other_branch
顯示差異時git merge other_branch
什麼都不做,我被困住了。將「缺少的」代碼合併到my_branch
中的正確方法是什麼?當`git diff`顯示更改但git merge`什麼都不做時,合併分支的正確方法
這SO answer圖表類似於我的情況。
o---A---B---C-------G my_branch
\ \ /
--*D*---E---F other_branch
令人驚訝的改變d不會自動合併到my_branch
當我做
git checkout my_branch
git merge other_branch
在帶來˚F到摹
我當然manually create a patch和將其應用於my_branch
,如下所示:
git diff other_branch my_branch > patchfile
git checkout my_branch
git patch -p1 < patchfile
但我想這樣做,沒有弄糟git日誌。使用補丁的方法,git會記錄在D和我的最新補丁中發生的變化,它們彼此獨立(代碼流失)。我想簡化git log
,並確保其他人在他們執行git merge my_branch
時不會有意外的事情發生(悄悄地和陰險地)。
您是否嘗試將'my_branch'合併到'other_branch'中?可能這可以解決分歧。如果某些提交已在'my_branch'中恢復,但未在'other_branch'中恢復,則最終會出現這種情況。 – iltempo 2013-05-10 20:51:55
@iltempo,我在你的評論後嘗試合併,是的,它確實解決了差異和git diff現在是乾淨的。我只需要相信它合適的合併。 – hobs 2013-05-10 21:44:12
@iltempo,我沒有故意恢復'my_branch'中的任何更改,但很可能會有 - 在簽出和編輯和簽出之間進行擺動之後,通過點擊保存在崇高(文本編輯器)中進行提交。我需要更加小心所有這些。 – hobs 2013-05-10 22:16:59