对比两次变基的结果
比较同一段提交在两个版本之间的对应关系,例如变基前后,或者同一功能的两个分支。它回答的是评审时最关心的问题:本次强制推送到底改了什么,是内容有变化,还是仅仅换了位置与哈希。
基本信息
| 用途 | 比较两组提交序列之间的对应关系 |
|---|---|
| 语法 | git range-diff <旧范围> <新范围> |
| 典型场景 | 评审强制推送、核对变基结果 |
| 输出标记 | 等号表示等价,感叹号表示有改动,加号减号表示新增或缺失 |
| 使用前提 | 两个范围应包含数量相当的提交 |
典型使用场景
- 评审同事强推之后的分支到底改了什么
- 核对变基结果是否只是移动位置
- 比较两条功能分支解决同一问题的差异
- 确认压缩或整理提交时没有误删内容
- 排查同一补丁在两次评审里结论不同的原因
常用示例
常用示例
git range-diff main..feature@{1} main..feature # 变基前后对照
git range-diff origin/main..origin/feature origin/main..feature # 远端与本地对照
git reflog show feature | head # 找到变基前的引用
git range-diff v1..v1-old v1..v1-new # 两个范围直接对照输出标记读法
| 标记 | 含义 |
|---|---|
| 等号 | 两侧提交内容等价,只是位置或哈希变化 |
| 感叹号 | 内容有改动,下面继续列出差异 |
| 加号 | 新范围里多出来的提交 |
| 减号 | 新范围里缺失的提交 |
输出会把每条提交配对展示,配合变基前的引用位置一起看,几分钟就能判断这次强推是否只是重排。
旧引用来自本地日志,换台机器就没有了;评审强推时可以提前记录引用位置,便于事后核对。
它展示的是提交之间的对应关系,不替代通读差异:标记为等价的两侧仍要确认改动是否覆盖了此前提出的评审意见。
范围写法可以用三点形式明确基线,写错时输出为空或直接报错,遇到异常先分别查看两侧的提交列表确认范围。