指定用户名
git log --author="your_name_here" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
统计每个人
git log --format='%aN' | sort -u | while read name;
do echo -en "$name\t";
git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'-;
done
这里的 added lines 是指增加的行数
这里的 removed lines 是指移除的行数
这里的 total lines 是指合计
由于 Git 对于大的二进制对象文件支持得不好,二进制大对象与大文本文件是不同的。
Git 对于不透明的二进制文件起不了多大作用,只能把它当作一个大的实体黑盒来提交。所以是不会计入行数的。
又由于 git 的机制是基于文本文件行来记录的,比如我们平常修改一行代码就是 一加 一减。
这个时候,合计就可以体现出有多少行代码是你真的 “新建” 的。