如何统计git存储库中每个提交者的总行数

如何统计git存储库中每个提交者的总行数,git,Git,我想统计git存储库中每个提交者的总行数。我只得到以下解决方案: git日志--格式='%aN'|排序-u |\ 读名字时;做 echo-en“$name\t” git log--author=“$name”--pretty=t格式:--numstat|\ awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf“添加行:%s,删除行:%s,行总数:%s\n”,add,subs,loc}- 完成 它可以计算出每个提交人总行的所有历史记录。但我想计算出当前快照中每个

我想统计git存储库中每个提交者的总行数。我只得到以下解决方案:

git日志--格式='%aN'|排序-u |\
读名字时;做
echo-en“$name\t”
git log--author=“$name”--pretty=t格式:--numstat|\
awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf“添加行:%s,删除行:%s,行总数:%s\n”,add,subs,loc}-
完成
它可以计算出每个提交人总行的所有历史记录。但我想计算出当前快照中每个提交者的总行数。我不知道怎么做


你有解决这个问题的办法吗?

这有点过火,速度有点慢,但你可以这样做

git日志--格式='%aN'|排序-u |\
读名字时;做
echo-en“$name\t”
对于$格式的文件(git ls文件);git会责怪$FILE | grep“$name”;完成| wc-l
完成

我发现接受的答案很慢,而且对我来说,GPG签名提交很难接受

这起到了作用:

git-ls文件| xargs-n1 git-null-line-ceral | sed-n的/^author//p'| sort-f | uniq-ic | sort-nr

我认为您的思路是正确的(git日志的一些变体…+sed或awk脚本)。查看并查找一些其他选项。我建议添加一些stderr重定向
2>/dev/null
,以便git错误不包括作者姓名:)