Git中撤銷中間的某次merge代碼

問題

在開發過程中發現分支中間某次merge存在dev代碼,需要把這個merge去掉,但不影響後續的提交

解決方案

坑點:網上說用【git revert】來實現,發現裏面有個坑點,revert之後,假如想在後續再加入這個merge分支就不行,因爲系統默認你已經合併過了,導致分支代碼沒法再次合併,超級麻煩

  1. 用【git reset】回到出錯版本的上一個版本
git reset --hard 3c2af5a7 
  1. 用【git cherry-pick】把出錯版本後面的commit合併進去
git cherry-pick 9dba07f4^..32aba548 ##出錯版本後的第一個commit直至最新commit

或者使用單次合併

git cherry-pick 9dba07f4
  1. 如果在cherry-pick 的過程中出現了衝突
    在處理衝突後,使用
git cherry-pick --continue

繼續處理下一個分支
如果想中途退出cherry-pick,使用

git cherry-pick --abort
  1. 合併衝突後,使用強制推送把舊分支進行覆蓋
git push origin HEAD:comitName --force

引用:
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
https://www.jianshu.com/p/08c3f1804b36

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章