2014-05-21 61 views
1

我正在使用功能分支us_stable。我合併了另一個分支Proto在這個us_stable分支,之後我做了更多的提交併推送到us_stable分支。現在我想恢復我在開始合併的分支。在我的情況下,我想恢復在Proto中合併的更改。我的問題是:如何在一些提交後刪除git合併

  • 是否有可能恢復合併?如果是,如何?
+0

因爲'Git'使用SHA值來組織提交,所以你不能刪除中間合併。 –

+0

合併之間沒有任何內容。我創建了一個myFeature分支,並立即合併了另一個分支,然後我開始在myFeature分支上工作,並做了3次更多提交併推送到myFeature分支併合並。現在我想忽略已合併的更改。 – Shawn

+0

您描述的場景正是@ArslanAli所謂的「中間」合併。 – musicmatze

回答

0

您可以發出以下命令:

git rebase master -i 

它只會選擇你想擁有的提交和丟棄等。

+0

我不想rebase myFeature分支。我只想恢復我在開始時所做的合併。 – Shawn

+0

這個答案絕對是你想要做的。但是,也許不是'主人',而是你從分支開始的提交。 – musicmatze

+0

謝謝你明白了。 – Shawn

0

您可以使用git reset --hard abcdef123將您當前的分支移動到提交abcdef123,例如,移動到合併之前的提交。

git push --force可能需要推這樣的分支。

請參閱git help resetHow to undo last commit(s) in Git?瞭解更多信息。