【主要内容:】
- 统计工程的总代码量
- 仓库提交前5名
- 统计某人的代码总量
- 统计所有人的代码量
一、统计工程的总代码量
命令:
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.storyboard" -or -name "*.a" -or -name "*.c" |xargs wc -l
解释:
*.m *.h :统计所有后缀是.m和.h的文件,大家都知道iOS的类都是由一个.m文件和一个.h文件组成。
举一反三:当你的工程师swift写的时候,那么在统计代码量的时候就应该加入".swift"
输出结果如下:
这条命令会列出每个文件的行数,从图上可以看出来整个工程代码量有46万多行。
二、仓库提交前5名
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
输出结果:
三、统计某人的代码总量
git log --author="ZMY" --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名字,如果不知道的话用下边这条命令查看:
git config --get user.name
执行效果如下:
知道自己git提交名字之后就可以查看自己的代码提交量了,如图:
如果可以看出我一共写了11万3行左右代码,删除过83491行代码,最后的统计29427,这个总统参考价值不大,删除的代码不太表都是从新增的代码里删除的
四、统计所有人的代码量
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
运行结果如下: