如何使用git shortlog汇总单个目录中多个存储库上的用户提交统计信息?

问题描述 投票:1回答:1

我有一个包含很多git repo子目录的目录,并且我想累积类似于]的信息>

git shortlog -sne --no-merges

对于其中的所有存储库,按用户的总提交次数对其进行排序。

例如用于回购1:

430 Author 1 <[email protected]>
 20 Author 2 <[email protected]>

例如用于回购2:

123 Author 1 <[email protected]>
 92 Author 2 <[email protected]>

总结果:

453 Author 1 <[email protected]>
112 Author 2 <[email protected]>

是否可以使用git内置工具来做到这一点?如果可以提供bash / shell脚本,我一定会提供赏金

我能够移出repo文件夹并为单个文件夹运行它:

git -C repoFolder shortlog -sne --no-merges

谢谢!

我有一个包含很多git repo子目录的目录,并且我想累积类似于git shortlog -sne --no-merger的信息,其中所有存储库都按用户排序...

bash git shell git-log
1个回答
1
投票

[cd循环进入每个子目录,并使用git shortlog处理awk输出:

for d in *; do git -C $d shortlog -ens --no-merges; done |
    awk '{name_email=""; for (i=2; i<=NF; i++) {name_email=name_email " " $i}; count_by_user[name_email]+=$1} END {for (name_email in count_by_user) print count_by_user[name_email], name_email}'
© www.soinside.com 2019 - 2024. All rights reserved.