描述:開發(fā)的項目有兩個分支,一個是master蒋歌,一個是dev帅掘,上次一不小心委煤,把dev分支上有問題的代碼,合并到了master分支上修档,今天檢查才發(fā)現(xiàn)了問題碧绞,GG
以下的解決辦法來源于博客:https://blog.csdn.net/zhidao_wenge/article/details/72757844
解決方法:
1.找到最后一次提交到master分支的版本號,即【merge前的版本號】
2.會退到某個版本號
git reset --hard 【merge前的版本號】
這個時候已經(jīng)會退到了上一次提交的版本吱窝,但是之后的修改還是存在master分支上讥邻,以下步驟很關(guān)鍵
3.重新創(chuàng)建一個分支,這時候的分支就是上一次提交的代碼
git checkout -b newmaster
4.推到對應(yīng)的遠程newmaster
git push
5.這個時候相當于備份做好了,接下來就可以刪除本地及遠端的master分支
git branch -d master
git push --delete origin master
6.從newmaster分支院峡,重新在創(chuàng)建master分支兴使,并推向遠端
git checkout -b master
git push
我在處理的時候,發(fā)現(xiàn)本地的分支確實改回來了撕予,但是卻沒有更新到遠程庫上鲫惶,試著更新了一下,報錯了实抡,提示使用如下git命令
git branch --set-upstream-to=origin/master master
然后再更新了一下,發(fā)現(xiàn)可以用了欢策,然后隨便改了幾個代碼提交了一下吆寨,也能提交成功。之后再和dev分支進行了比對踩寇,發(fā)現(xiàn)代碼確實已經(jīng)回滾到了合并分支前的情況啄清,這說明撤銷分支合并確實有效,所以記錄一下俺孙。
最后感謝https://blog.csdn.net/zhidao_wenge/article/details/72757844 博主的分享