git代码数据统计
gitbash 终端执行如下命令
查看git上的个人代码量(username为gitlab的账户名):
1
git log --author="username" --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 }' -
统计每个人的增删行数:
1
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
统计某段时间内所有人的代码量(修改起止时间,如果指定某一个人,将name更换为gitlab的账户名):
1
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2021–10-01 --until=2021-10-30 --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
查看仓库提交者排名前5:
1
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
贡献值统计:
1
git log --pretty='%aN' | sort -u | wc -l
提交数统计:
1
git log --oneline | wc -l
git log参数说明
1 | --author 指定作者 |
其它统计方式
- 工具、插件统计:gitstats、cloc
- python统计
- 还有用接口统计的
- ……
总结
- 通过 Git log 统计,稍微会麻烦一些,需要有一些 awk 知识的储备;
- 使用插件 git_stats 来生成可视化报告,对用户友好。美中不足就是会在当前项目增加很多 html 统计可视化文件;
- 命令行工具 cloc,简单易用,无侵入,使用门槛低;