如何列出作者插入的不包括文件的行?
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
)
我可以使用 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
)