首页/开发/Git 与协作速查/双点与三点差异的区别
合并变基与冲突71 条

双点与三点差异的区别

git diff A..B 比较两个端点;git diff A...B 比较 A 与「A、B 的共同祖先」到 B 的差异,评审 PR 常用三点视角只看引入的变更。

Git 与协作速查开发更新于 2026-10-12
双点A..B:端点对端点
三点A...B:从 merge-base(A,B) 到 B
等价写法git diff $(git merge-base A B) B

常用示例

常用示例
# 只看分支相对共同祖先新增的改动
git diff main...feature
git diff main..feature
git diff main...feature --stat
平台 PR 页面展示的通常是三点差异;本地复核对方分支改动时用三点更贴近评审视图。

易错点

  • 在 A 与 B 已分叉后,两点与三点结果不同,写脚本时先明确要哪一种
  • 三点语法的左侧参数默认取共同祖先,误解为「A 相对 B」会得出相反结论

数据来源与参考

  • Git 官方文档:git-diff(A..B 与 A...B)
  • Git 官方文档:gitrevisions(三点语法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌