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

如何对比基于不同基底的两个合并/合并请求的差异

对比跨基底修复分支的PR差异方法

核心思路

要对比F→D和F*→B1这两个PR的差异,本质是提取两个修复分支各自的变更内容,消除基底分支(D、B1)本身的差异干扰,直接对比修复逻辑的细微调整。

具体可行方法

方法1:导出补丁后用文本工具对比

  • 分别导出两个PR的变更补丁:
    • 导出F相对D的变更:git diff D..F > fix-D.patch
    • 导出F*相对B1的变更:git diff B1..F* > fix-B1.patch
  • 用BC3、VS Code内置对比工具等打开两个.patch文件,直接对比修复内容的差异。

方法2:Git直接对比变更内容

  • 先将两个PR的变更输出为临时文件:
    1. git show D..F > temp-F-D.txt
    2. git show B1..F* > temp-F*-B1.txt
  • 用Git的无索引对比功能直接查看差异:
    git diff --no-index temp-F-D.txt temp-F*-B1.txt
  • 若要忽略空格、换行等格式干扰,可添加参数:
    git diff --no-index --ignore-all-space temp-F-D.txt temp-F*-B1.txt

方法3:基于临时分支对比

  • 创建临时分支对齐基底后再对比:
    1. git checkout -b temp-D F,执行git rebase D让修复变更基于最新的D
    2. git checkout -b temp-B1 F*,执行git rebase B1让修复变更基于最新的B1
    3. 直接对比两个临时分支:git diff temp-D temp-B1
  • 此方法会自动过滤基底分支的差异,只显示修复内容的不同。

注意事项

  • 若修复涉及多个提交,D..F会包含F相对D的所有变更;若是单个提交,可直接替换为提交哈希值。
  • 对比时优先使用忽略格式差异的参数,避免无关干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:52:41