我有兩個獨立的分支。我在一個月以上的不同時間對他們進行了研究。我去了一個分支(讓我們稱之爲apple
)到其他(我們稱之爲orange
),通過檢查橙色和做git merge --no-ff apple
,一切都很順利。在gitk中,我可以清楚地看到每個分支都有自己的歷史記錄,並在橙色合併提交中合併在一起。git - rebase廢墟合併
後來我意識到橙色提交是不正確的,在構建過程中存在錯誤,我必須編輯橙色提前提交。我使用git rebase -i HEAD~19
,選擇提交併將pick
更改爲edit
。所以我編輯提交,一切都很好,我完成了rebase。我回到gitk,兩個分支的所有歷史都是橙色的線性歷史。
所以我把事情搞砸了,或者這是應該的方式嗎?我使用git reflog返回到合併時的狀態,然後在橙色合併之前我再次執行了另一個復位操作,然後執行了rebase並修復了該提交,之後我進行了合併。現在一切看起來都是我所期望的,來自分支機構的提交不交錯在一起。
爲了將來的參考可以有人告訴我如何可以rebase提交我已經在另一個分支合併的分支,沒有結束隔行提交(線性歷史)?
如果我的術語不正確,請隨時編輯。再次感謝
我不知道'gitk',但在'gitg'我有一個選項可以選擇分支,你是否選擇了像所有本地分支一樣的東西? –
也許rebase上的提交ID而不是相對的'HEAD〜19'? – nneonneo
請注意,git 1.8.5將引入[整潔的方式來保存合併'pull --rebase'](http://stackoverflow.com/a/18756102/6309) – VonC