如何列出作者插入的不包括文件的行?

How to list author's inserted lines excluding files?

我可以使用 git log 列出每个作者对插入或删除的行或字符的贡献,例如:

git log --shortstat --author "Steve Jobs"

但是如何递归排除特定文件夹?如果我想列出特定用户的插入行而不考虑他推送的文件夹 test(及其包含的所有文件)?

如果人家推送了一个node_modules文件,插入的行数会急剧增加,我不想考虑。

我终于做到了:

要查看用户 toto 的项目总插入行和删除行(排除 node_modules 中的所有内容),只需执行以下操作:

git log --shortstat --author="toto <toto.tata@tutu.tete>" -- . ":\!node_modules" | grep -E "fil(e|es) changed" | awk '{files+=; inserted+=; deleted+=} END {print "files changed: ", files, "lines inserted: ", inserted, "lines deleted: ", deleted }'

它将以以下格式输出统计数据:

files changed: 31 lines inserted: 75293 lines deleted: 25

如果您想了解同事应用的每个更改(不包括特定文件),您只需要为 运行 这个命令编写一个脚本,其中包含所有存储库的贡献者(可以通过 git log --format='%aN' | sort -u)