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

解决Git合并冲突后,如何仅推送PR相关更改?

合并master分支冲突后仅推送PR相关更改的正确操作

当你在branchA开发且已有PR,合并master分支更新时,若遇到冲突并手动解决后,只需聚焦于冲突文件进行操作,就能避免PR混入多余内容:

方法一:使用merge(保留合并提交)

  1. 解决完所有冲突后,先确认哪些是真正需要处理的冲突文件:

    git diff --name-only --diff-filter=U
    

    这个命令会列出所有存在冲突的文件,这些是你需要确认解决完成的文件。

  2. 仅将冲突文件添加到暂存区:

    git add <冲突文件路径1> <冲突文件路径2>
    

    不要使用git add .,否则会误将所有文件(包括git已自动合并完成的master分支文件)暂存。

  3. 提交合并操作:

    git commit
    

    此时git会自动生成合并提交的默认信息,你也可以根据需要修改。

  4. 推送分支到远程:

    git push origin branchA
    

方法二:使用rebase(更干净的提交历史)

如果你希望提交历史更线性、无合并提交,可以用rebase替代merge:

  1. 切换到master分支拉取最新更新:

    git switch master
    git pull
    
  2. 切回branchA:

    git switch branchA
    
  3. 基于最新master进行rebase:

    git rebase master
    
  4. 遇到冲突时,手动解决冲突后,仅添加冲突文件:

    git add <冲突文件路径>
    
  5. 继续rebase流程:

    git rebase --continue
    

    重复步骤4-5,直到rebase完成。

  6. 推送分支(因rebase改写了历史,需用--force-with-lease安全强制推送):

    git push origin branchA --force-with-lease
    

问题根源说明

你之前解决冲突后看到master分支所有文件呈绿色,大概率是用了git add .将所有文件暂存,包括git已自动合并完成的master分支文件。但这些文件的内容和master完全一致,PR的差异对比不会显示它们——除非你误修改了这些文件。只要只暂存并提交冲突文件,就能保证PR仅包含你开发的更改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:42:32