运行这个命令:
git log --pretty=format:'' --numstat --author 'Lu4' | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
这个命令非常接近abyx's answer 中的聪明命令,但它也处理Wallace Sidhrée 发现的边缘情况。有时,提交只涉及删除(即不插入)。 abyx's answer 中的命令错误地将这些删除读取为插入。此处的命令可以正确读取它们,因为它使用--numstat 而不是--shortstat。与--shortstat 不同,--numstat 包括这些提交的插入和删除。
请注意,这两个命令在文件计数中都包括二进制文件,但不包括在这些二进制文件中插入和删除的行数。
这是另一个有用的技巧。使用以下内容创建一个名为 gitstats 的文件:
#!/usr/bin/env bash
git log --pretty=format:'' --numstat "$@" | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
然后,您可以使用任何额外的选项来运行该命令以添加您想要的 git log。以下是一些示例:
./gitstats;
./gitstats --since '1 month ago';
./gitstats --since '1 month ago' --until '1 day ago';
./gitstats --author 'Lu4' --since '1 month ago' --until '1 day ago';
(当然,该文件可以命名为 gitstats 以外的名称。)