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

为何GitHub Pull Request的base分支(左侧)内容与实际HEAD版本不一致

问题原因

核心是Git三点diff语法和PR默认比较逻辑的特性,具体如下:

  • git diff A...B的本质是对比两个分支的最近共同祖先节点(merge base)与B分支HEAD的差异,而非直接对比A分支当前最新HEAD和B分支的差异。你执行的git diff prod...prod-feature以及绝大多数Git托管平台的PR默认比较逻辑都采用了这套规则,目的是仅展示待合入分支本身引入的变更,排除目标分支后续新增变更的干扰。
  • 该现象刚好符合这套逻辑:prod-feature分支是从prod分支尚未修复格式化问题的旧提交上切出的,后续prod分支合入了格式化修复的提交,但prod-feature分支没有合并/变基同步最新的prod代码,两个分支的最近共同祖先仍为未修复问题的旧提交,因此比较时左侧展示的是共同祖先的旧代码,而非prod当前最新的代码。

验证方式

执行两点diff命令即可对比当前prod最新代码和prod-feature的差异,得到预期结果:

git diff prod..prod-feature | grep hh

修复方案

如果需要让PR比较页左侧显示prod最新代码,将prod-feature分支变基到最新的prod分支HEAD上,更新两个分支的共同祖先即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:15:03