首页/开发/Git 与协作速查/git shortlog 贡献统计
Git 基础与命令88 条

git shortlog 贡献统计

汇总提交者与提交数量:-sn 按数量排序、-e 显示邮箱、可指定区间统计发布周期内的贡献。

Git 与协作速查开发更新于 2026-10-13

贡献统计怎么做

按作者汇总提交数量:摘要模式只输出计数,排序模式按数量排列,附带邮箱模式会显示邮箱,还可以指定提交区间统计某个发布周期的贡献。它常被用来生成发布致谢名单。

基本信息

摘要模式只输出计数与作者名
排序按提交数量排序,便于看分布
邮箱附带作者邮箱,便于核对身份
区间统计可在版本区间内统计,例如两个标签之间
署名归并配合署名映射文件把同一人的多种署名合并

典型使用场景

  • 发布前生成贡献者名单
  • 统计某个版本周期内的提交分布
  • 核对是否存在异常作者名或机器账号
  • 按作者排查提交量异常
  • 把同一人的多种署名合并后统计真实贡献

常用示例

常用示例
git shortlog -sn                      # 按提交数量排序的作者摘要
git shortlog -sne                     # 附带邮箱
git shortlog -sn --all                # 统计所有分支
git shortlog -sn v1.0..v2.0           # 统计两个版本之间的贡献
git shortlog -sn --no-merges          # 排除合并提交

选项对照

选项作用
-s只输出计数摘要
-n按提交数量排序
-e显示作者邮箱
--all统计所有分支而非仅当前分支
发布前一键生成贡献名单很省事,但要注意署名映射:同一个人用多种署名提交时会被统计成多个人。
统计口径默认只看当前分支,跨分支统计要显式指定,否则数字会明显偏小。
排除合并提交后的计数更接近实际工作量,对比两次统计时口径要统一说明,避免出现两份不同的名单。
机器账号与持续集成的身份会混进统计结果,生成对外名单前先确认是否需要剔除。
统计结果依赖提交时间与作者信息,仓库迁移或改写历史后数字会变化,对外引用前先重新生成一次。

易错点

  • 没有署名映射文件时同一作者因署名不同被拆成多人,名单里出现重复条目
  • 统计口径默认为当前分支,跨分支统计漏算之后得出错误结论
  • 把提交数量直接当作贡献度,实际上代码量、评审与文档贡献都没有体现
  • 对外发布名单前没剔除机器账号,最终名单里出现自动化身份影响观感

数据来源与参考

  • Git 官方文档:git-shortlog
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌