Git 统计提交代码行数

时间:2024-07-28 21:06:44

指定用户名

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 的机制是基于文本文件行来记录的,比如我们平常修改一行代码就是 一加 一减。

这个时候,合计就可以体现出有多少行代码是你真的 “新建” 的。