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

撤销Git合并后,如何重新执行合并操作?

解决Git撤销合并后重新合并丢失历史提交的问题

你遇到的问题核心是Git将合并撤销操作(merge-revert)标记为新提交,它会认为commit1、commit2的变更已被“抵消”,因此再次合并master时会自动跳过这些变更。以下是两种可行的解决方法:

方法一:反向撤销之前的合并操作(适合未推送到远程或团队未依赖该撤销提交的场景)

  • 切换到A分支:git checkout A
  • 找到那个合并撤销的commit(比如你提到的commit7),执行反向撤销:git revert <commit7的哈希值>
    • 这会生成一个新提交,将之前被撤销的master分支变更重新恢复到A分支
  • 执行合并master分支的操作:git merge master
    • 此时Git会正常识别master分支的所有commit(包括commit1、commit2、commit3、commit4),处理可能出现的代码冲突即可

方法二:强制合并并手动恢复变更(适合已推送撤销提交、团队已拉取的场景)

如果不想撤销之前的merge-revert提交(避免影响团队其他成员),可以直接合并master后手动恢复丢失的变更:

  • 切换到A分支:git checkout A
  • 执行合并master分支:git merge master
    • 此时Git可能不会自动引入commit1、commit2的变更,因为它认为这些变更已经被撤销过
  • 手动找回commit1和commit2的变更:
    • 用git show <commit1哈希值>和git show <commit2哈希值>查看两个提交的具体变更,手动将这些变更重新应用到当前代码中
    • 或者使用git cherry-pick <commit1哈希值> <commit2哈希值>,将这两个提交的变更单独挑到A分支(注意处理可能的冲突)
  • 提交合并后的变更:git add . && git commit

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:15:42