Git如何撤銷某次分支的合併Merge

FeelTouch發表於2019-02-12

問題

某天,所有的開發檔案已經在dev分支上,但是這時候,線上出了一個問題,需要及時修復,於是從master分支上,拉了一個bug分支,進行處理,master分支本應合併bug分支,結果合併了dev分支,而且還commit,並推到了遠端的master分支,這時候才發現出了問題,於是乎,問題就來了

方法

1.找到最後一次提交到master分支的commit_id,即merge前的commit_id,也就是目標要回退到的commit_id

2.執行回退
git reset --hard commit_id

#執行完成後,此時本地已經回退到了上一次提交的版本,但是遠端仍然是被改變的版本。

3.重新建立一個分支,這時候的分支就是上一次提交的程式碼
git checkout -b newmaster

4.推到對應的遠端newmaster
git push origin newmaster:newmaster

5.這個時候相當於備份做好了,接下來就可以刪除本地及遠端的master分支

git branch -d master
git push --delete origin master

6.從newmaster分支,重新在建立master分支,並推向遠端

git checkout -b master origin/newmaster
git push master:master

7.done!

相關文章