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

PR合并回滚后再次合并,如何让Git优先保留待合并分支的修改?

解决Git合并回滚后再次合并丢失修改的问题

当你回滚master上的合并操作时,Git会生成一个反向提交,这个提交的作用是撤销原PR的所有修改。此时Git的历史会判定:原PR的修改已经被“处理过”(被撤销了),所以当你再次尝试合并待合并分支时,它会认为master分支已经领先,直接跳过待合并分支的修改,导致内容丢失。

方法一:变基待合并分支(适合私有分支)

变基会把待合并分支的修改重新基于最新的master分支,让Git重新识别这些修改,步骤如下:

  • 切换到你的待合并分支:git checkout your-feature-branch
  • 拉取远程master的最新版本:git fetch origin master
  • 执行变基操作:git rebase origin/master
    • 若出现冲突,打开冲突文件手动解决,完成后执行git add .,接着git rebase --continue,重复此过程直到变基完成
  • 切换回master分支:git checkout master
  • 合并变基后的分支:git merge your-feature-branch
    • 此时合并会是快进模式,待合并分支的所有修改都会被正确保留

方法二:撤销之前的回滚提交(适合公共分支)

如果不想修改分支历史(比如待合并分支是公开分支),可以先撤销master上的回滚提交,再合并修复后的分支:

  1. 用git log查看历史,找到标注“撤销合并XXX”的回滚提交,记录它的哈希值ROLLBACK_COMMIT_HASH
  2. 切换到master分支:git checkout master
  3. 撤销回滚提交:git revert ROLLBACK_COMMIT_HASH
    • 这会生成一个新提交,将之前被回滚的修改重新恢复到master上
  4. 合并修复后的待合并分支:git merge your-feature-branch
    • 此时Git会正常处理修复后的修改,解决可能的冲突后完成合并

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 03:58:38