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

如何统计Git仓库中每位作者提交消息的平均字符数?(不擅长Bash)

计算Git仓库中每位作者提交消息的平均字符数

别发愁,我来给你写个简单的Bash命令组合,轻松搞定这个统计需求!不用怕复杂,我会一步步给你解释清楚。

直接可用的命令

在你的Git仓库根目录下,直接运行这段命令就行:

git log --pretty=format:"%an|%s" | awk -F'|' '{
    msg_len = length($2)
    author_stats[$1]["total_chars"] += msg_len
    author_stats[$1]["commit_count"] += 1
}
END {
    # 打印表头,让结果更规整
    printf "%-20s %12s %18s\n", "作者名称", "提交次数", "平均消息字符数"
    printf "%-20s %12s %18s\n", "----------", "----------", "------------------"
    # 遍历统计结果,计算并输出平均值
    for (author in author_stats) {
        avg_len = author_stats[author]["total_chars"] / author_stats[author]["commit_count"]
        printf "%-20s %12d %18.2f\n", author, author_stats[author]["commit_count"], avg_len
    }
}'

命令细节解释

  • git log --pretty=format:"%an|%s":用Git导出所有提交的关键数据,%an是作者名称,%s是提交消息的主题部分,用|作为分隔符方便后续处理。
  • awk -F'|':以|为分隔符解析每行数据:
    • 先计算单条提交消息的字符长度msg_len = length($2)
    • 用关联数组author_stats分别累加每个作者的总字符数和提交次数
    • 最后遍历数组,算出平均长度并格式化输出,让结果可读性更强

可选扩展

  • 如果想统计完整提交消息(包括主题+正文),把git log的格式改成%an|%B就行,%B会输出完整的提交内容。
  • 如果同一个作者有多个用户名/邮箱别名,可以先通过Git的git filter-branch统一作者信息,再运行统计,结果会更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:39:31