git rev-list 是什么
rev-list 输出某组引用可达提交的哈希列表(每行一个),是统计脚本的基础命令:--count 只输出数量,区间语法与 git log 完全一致,配合 --all 可覆盖全部引用。它面向「处理」而不是「浏览」——把提交集合变成机器可处理的列表,供脚本、CI 与审计工具消费。
基本信息
| 输出 | 提交哈希,每行一个,适合喂给脚本 |
|---|---|
| --count | 只输出数量,方便脚本取值 |
| 区间语法 | 与 git log 相同(A..B、A...B、--not) |
| 常用过滤 | --since、--until、--author 等与 log 共用 |
| 适用平台 | 所有平台通用;大仓全量遍历注意耗时 |
典型使用场景
- 评审前统计:feature 分支相对主线多出多少提交。
- 发布工具链:导出两个标签之间的提交哈希供工具二次处理。
- 仓库体检:统计全仓提交总数与时间窗内的活跃度。
- 脚本管道:把哈希列表喂给 show、grep 做批量检查。
- 找未合并提交:用 --not 排除已并入集合,定位漏合并分支。
- 评估发布范围:v1.0..HEAD --count 一条命令算出下一版本累计提交量。
常用示例
常用示例
git rev-list --count HEAD # 当前分支提交总数
git rev-list --count main..feature # feature 比 main 多的提交数
git rev-list --all --count # 全部引用可达提交总数
git rev-list HEAD --not main | head # 列出 feature 独有提交
git rev-list --since='2026-09-01' --count HEAD # 时间窗内提交量常用选项
| 选项 | 作用 | 备注 |
|---|---|---|
| --count | 只输出数量 | 脚本取值方便 |
| --all | 覆盖所有引用 | 大仓注意耗时 |
| A..B | B 独有提交(差集) | 统计分支增量 |
| --not | 排除可达集合 | 找未合并提交 |
| --since/--until | 按时间过滤 | 与 log 用法一致,适合月度统计 |
只输出哈希、不带作者与主题,看内容请用 git log;大仓对 --all 做全量遍历较重,统计时尽量限定范围。与 log 的关系是:log 相当于 rev-list 加提交摘要渲染——要名单用 rev-list,要阅读用 log;默认输出按提交时间逆序,做审计时留意时钟偏差带来的排序错觉。