2011-07-11 99 views
1

我對Git不是很熟悉。我有基礎知識了,但那是關於它的。Git撤消合併3個分支

無論如何,我的朋友通過合併這3個分支走過了我。他讓我自己運行mergetools部分。我沒有正確地進行合併,但已經推進了更改。有什麼方法可以撤銷我的更改,以便它回到3個不同的分支,然後再次合併?

編輯*

不是100%肯定,如果它很重要,但分支2是從上游。

回答

1

找出最後清理狀態(即合併之前的提交)的提交ID,例如git log並重置爲該值。

git reset --hard abcdef01 

之後,力推你的舊狀態。

git push -f origin 

注意:reset --hard將捨棄不分階段的變化,所以一定有一個乾淨的工作目錄。如果不確定,請執行git stash。 此外,如果您沒有對合並狀態做任何進一步的工作,即從那時起您沒有提交任何內容,那麼這隻會毫無問題地工作。

手冊頁:

+0

我以爲我記得閱讀過,你不能重置 - 如果你已經推動了你的改變,很難。也許我讀了你不應該,不是我不能?無論哪種方式,有沒有一種方法可以在再次推送之前測試它是否有效? – John

+0

不是100%確定它是否重要,但其中2個分支來自上游。 – John

+0

您可以隨時在本地存儲庫中執行任何操作。這只是不推薦,因爲你會改變已推送(發佈)的歷史。 – Koraktor

-1

您可以使用git revert <>,但仍然會有這麼多提交的最後一個乾淨的承諾和當前head。我不太瞭解git命令,但是必須有一種方法來打印所有的提交。您可以編寫一些腳本來僅提取SHA並將其全部還原。

雖然我不是100%確定的。 :)