Git中撤销中间的某次merge代码

简介: 在开发过程中发现分支中间某次merge存在dev代码,需要把这个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


目录
相关文章
|
3月前
|
IDE 网络安全 开发工具
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
|
28天前
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
41 4
|
1月前
|
Java Linux 开发工具
IDEA中git提交前如何关闭code analysis以及开启格式化代码
【10月更文挑战第12天】本文介绍了在 IntelliJ IDEA 中关闭代码分析和开启代码格式化的步骤。关闭代码分析可通过取消默认启用检查或针对特定规则进行调整实现,同时可通过设置 VCS 静默模式在提交时跳过检查。开启代码格式化则需在 `Settings` 中配置 `Code Style` 规则,并通过创建 Git 钩子实现提交前自动格式化。
|
2月前
|
Shell 网络安全 开发工具
git与gitee结合使用,提交代码,文件到远程仓库
本文介绍了如何将Git与Gitee结合使用来提交代码文件到远程仓库。内容涵盖了Git的安装和环境变量配置、SSH公钥的生成和配置、在Gitee上创建仓库、设置Git的全局用户信息、初始化本地仓库、添加远程仓库地址、提交文件和推送到远程仓库的步骤。此外,还提供了如何克隆远程仓库到本地的命令。
git与gitee结合使用,提交代码,文件到远程仓库
|
27天前
|
JavaScript 前端开发 开发工具
一身反骨的我,用--no-verify绕开了git代码提交限制!
【10月更文挑战第7天】一身反骨的我,用--no-verify绕开了git代码提交限制!
83 0
|
3月前
|
开发工具 git 开发者
|
开发工具 git
Git 中 merge 和 rebase 的区别
$ git pull --rebase和$ git pull区别 是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。
27786 0