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

Git拉取远程分支无变化,如何恢复已拒绝的合并变更?

解决Git合并后重新获取已拒绝变更的方法

问题核心是:你之前合并远程branch2到branch1时,Git已经记录了那次合并的提交,所以现在拉取时会判定branch1已包含branch2的所有变更——哪怕你当时拒绝了部分内容。以下是具体解决步骤:

  • 定位合并提交ID
    先查看branch1的提交历史,找到那次合并远程branch2的记录:

    git log --oneline branch1
    

    找到类似Merge branch 'branch2' into branch1的提交,记下它的commit ID(比如abc123)。

  • 查看被拒绝的变更内容
    用以下命令导出那次合并中未被你接受的所有变更:

    git diff abc123^2 abc123
    

    这里abc123^2指合并提交中来自branch2的父节点,对比后就能看到当时没合并到branch1的内容。

  • 应用被拒绝的变更
    有两种常用方式:

    1. 生成补丁并应用
      先把变更导出为补丁文件:
      git diff abc123^2 abc123 > rejected_changes.patch
      
      切换到branch1后应用补丁:
      git checkout branch1
      git apply rejected_changes.patch
      
      若出现冲突,手动修改冲突文件,标记冲突解决后提交:
      git add <冲突文件路径>
      git commit -m "Apply previously rejected changes from branch2"
      
    2. 逐个挑选提交合并
      如果你明确知道当时拒绝的是branch2上的具体提交,可直接用cherry-pick单独合并:
      先列出branch2上在那次合并之前的所有未被合并的提交:
      git log --oneline branch2 ^abc123^2
      
      然后逐个挑选需要的commit ID执行:
      git cherry-pick <目标提交ID>
      
      遇到冲突时解决后,用git cherry-pick --continue继续操作,或--abort终止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:16:03