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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容