我想在新的初始提交之上重新整理我的整個git歷史記錄,以便將其推送到SVN。無法重定義包含已解決的合併衝突的分支
我不明白的是爲什麼我必須再次解決相同的合併衝突。他們曾經在原始歷史中解決過,爲什麼不能僅僅採用這些解決方案呢?
我已經發表了minimal git-repository來重現問題:
git clone https://github.com/martinsson/merge-conflict-reappears-in-rebase.git
git checkout yoda
git rebase master
我知道的git rerere的,但它似乎將不得不在這些衝突將被激活首先解決。從理論上講,我可以激活它,解決衝突,然後用它來解決衝突,但在實踐中,解決衝突似乎幾乎不可能與原始衝突解決相同。
我知道我可以推動一切到SVN,使用合併或git嫁接。但是這違背了將提交日誌移植到SVN的目的。
約翰 - 你想樹合併,或只是根源變化?如果前者,那麼我認爲'rebase'就是你想要的命令。 'filter-branch'似乎更有可能。 – 2014-10-16 15:33:25
不知道我可以使用filter-branch。然而,我無法做到這一點,我做了什麼。 'echo「8281b521 145c1aa」>> .git/info/grafts'。 'git filter-branch -f --tag-name-filter cat - --all'。 'git svn dcommit'。然後我得到'無變化 3147a479889ef4c88a00bd7f01cc0764930b9f90〜1 == 3147a479889ef4c88a00bd7f01cc0764930b9f90 無法從提交5bba77149399ab4d3600f642af63a43620d06fa0〜1'提取修訂信息。合併提交不會被推送並且dcommit停止。 [b4推送](https://www.dropbox.com/s/i7sh5i3jgymbvco/Screenshot%202014-10-17%2010.07.28.png?dl=0) – 2014-10-17 08:10:51
[推送後的狀態](https:// www .dropbox.com/s/z22qn82vgt6r22q /截圖%202014-10-17%2010.15.50.png?dl = 0) – 2014-10-17 08:16:54