2013-03-22 125 views
4

我有我的主分支,然後我正在處理另一個功能,將其合併到本地主服務器,然後將其推送到Github。恢復到合併分支之前

現在我需要刪除由於此合併而發生的所有更改,直到進一步通知,但能夠在稍後的時間點將它們合併回來。

我怎樣才能做到這一點?

回答

4

你必須弄清楚哪些預合併提交代表「主線」,即你想保留的部分。您可以使用git log

commit b556759a560650506da58e59f6a7c6a2c4bcb8f4 
Merge: e3dac0d 090ad85 

...以及對兩個父提交的視覺檢查。 (這似乎git merge foo始終把HEAD在家長的名單和foo秒頭的第一個位置,但我不知道這是保證。)

假設e3dac0d是主線,所以我們要恢復的090ad85合併式,那麼這就是

git revert -m e3dac0d b556759 

有關詳細信息,請參閱revert a faulty merge howto由Torvalds和濱野。

+0

還要確保'090ad85'仍然在一個分支中(或在該提交上創建一個新的分支),以便稍後可以檢索/重新合併。 – Arjan 2013-03-22 15:15:09

+0

@Arjan:這是一個'revert',而不是'reset',所以如果需要它可以重新恢復。 '090ad85'將留在歷史中。 – 2013-03-22 15:16:24