如何统计按提交消息过滤的Git提交数量?
统计Git提交消息匹配指定字符串的提交数量
当然可以搞定!你不用手动数那些长长的提交列表,Git本身就能配合简单的命令直接给出匹配的提交总数,我给你几个实用的方法:
最直观的方法(结合wc命令)
这是日常最常用的方案,用git log过滤出目标提交后,交给wc -l统计行数:
git log --all --grep='SEARCH_STRING' --oneline | wc -l
逐个解释下参数:
--all:遍历所有分支的提交(如果只需要统计当前分支,直接去掉这个参数就行)--grep='SEARCH_STRING':匹配提交消息中包含指定字符串的提交--oneline:把每个提交压缩成一行输出,确保每行对应一个提交,避免计数出错| wc -l:通过管道将git log的输出传给wc -l,统计输出的行数(也就是匹配的提交数量)
如果需要区分大小写的匹配(默认Git的--grep是不区分大小写的),加上-i参数即可:
git log --all --grep='SEARCH_STRING' -i --oneline | wc -l
纯Git原生方式(无需依赖外部命令)
如果你不想用wc这类外部工具,也可以用Git自身的参数实现:
git log --all --grep='SEARCH_STRING' --pretty=tformat:'' | wc -l
这里--pretty=tformat:''会让Git只输出和提交数量对应的空行,再用wc -l统计行数,结果同样准确。
扩展场景:统计指定分支的匹配提交
如果不需要遍历所有分支,只想统计某个特定分支(比如main)的匹配提交,把--all换成分支名即可:
git log main --grep='FIX:' --oneline | wc -l
上面的命令会统计main分支中提交消息包含FIX:的提交总数。
内容的提问来源于stack exchange,提问作者christian wuensche
相关产品推荐
相关产品推荐

