You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git分支合并异常:example1混入example2代码,如何撤销合并?

问题原因
  • 你在准备把example1合并到dev的过程中,大概率是先在example1分支上执行了git merge dev操作(通常是为了解决合并冲突)。此时dev已经包含了example2的合并结果,这次合并会把dev里的所有变更(包括example2的代码)都同步到example1分支里。
  • 后续你把example1合并到main时,这些来自example2的变更自然就被一起带进去了。
撤销example1分支中的合并操作

根据你的分支是否已推送到远程,有两种可行的解决方式:

方式1:用git reset回退到合并前状态(适合可强制推送的场景)

  1. 切换到example1分支:git checkout example1
  2. 查看提交日志找到合并前的提交哈希:git log --oneline,找到合并提交(带有Merge标记的那条)的上一条提交记录,复制它的哈希值
  3. 硬重置到该提交:git reset --hard <合并前的提交哈希>
  4. 如果已经推送到远程仓库,执行强制推送覆盖:git push origin example1 --force

方式2:用git revert撤销合并提交(适合不能强制推送的场景)

如果你的example1分支已经推送到远程,且团队不允许强制推送(避免影响其他协作者),可以用这种方式:

  1. 切换到example1分支:git checkout example1
  2. 查看提交日志找到合并提交的哈希:git log --oneline,找到那条带有Merge标记的合并提交,复制它的哈希值
  3. 执行撤销操作:git revert -m 1 <合并提交的哈希>
    • -m 1的作用是保留example1分支原本的内容,丢弃来自dev分支的合并内容
  4. 推送撤销后的提交到远程:git push origin example1

内容的提问来源于stack exchange,提问作者Guilherme Migliano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:25:37