Git撤銷某次分支的合並Merge


原文地址:https://blog.csdn.net/feeltouch/article/details/87020141

問題:

某天,所有的開發文件已經在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!

方法2:需強推遠程

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

git reset --hard commit_id
#執行完成后,此時本地已經回退到了上一次提交的版本,但是遠程仍然是被改變的版本。

3.強推遠程

git push origin HEAD --force #遠程提交回退

4.done!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM