当我们维护一个开源项目的时候,你肯定想知道哪些人比较活跃,哪些人贡献比较多。这时候就需要一个简单易用的工具,下面我来介绍几款。
一、场景
目前大部分的项目可能都会用到 Git
来做代码管理,那么我们在不断的修改项目的过程中,可能会关注如下几个问题:
1.每个参与者贡献代码量,按劳分配某些资源🙈;
2.参与者的代码增删量,提交次数等;
3.统计活跃度;
那么,如何来对代码量做统计呢?
二、常规操作
一般情况,我们可以直接通过 Git log
来统计,如:
1.统计个人代码量:
1 | git log --author="jartto" --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 }' - |
2.贡献值统计:
1 | git log --pretty='%aN' | sort -u | wc -l |
3.查看排名前 5 的贡献者:
1 | git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5 |
更多 log
操作可以请移步:Git 代码统计。
这时候,你可能在想:有没有省时省力的方式呢,顺便帮我生成报告。答案是肯定的,是时候请出我们的 git_stats
了。
三、使用 git_stats
1.首先,我们需要全局安装 git_stats
1 | sudo gem install git_stats |
2.接下来,运行
1 | git_stats generate |
3.打开 git_stats
目录
1 | cd git_stats && open index.html |
四、演示
1.概览
2.Dashboard
可视化
如果你对 git_stats
生成的一大堆文件不满意,我们还有一种方式可以「无侵入」,同时显得更加「高冷」。
五、补充:cloc
cloc 最优秀的地方就是「简洁粗暴」,我们来尝试一下。
1.尝试一下 cloc
,首先,全局安装:
1 | npm install -g cloc |
2.简单用例
1 | cloc [options] <file(s)/dir(s)/git hash(es)> |
3.使用
1 | Usage: cloc [options] <file(s)/dir(s)/git hash(es)> | <set 1> <set 2> | <report files> |
进入项目,执行:
1 | cloc . |
稍等片刻,就会有一个输出结果:
1 | ----------------------------------------------------------------------------------- |
4.更多的使用命令,可以查看帮助
1 | cloc --help |
六、总结
上文介绍了三种 Git
代码统计方式:
1.通过 Git log
统计,稍微会麻烦一些,需要有一些 awk
知识的储备;
2.使用插件 git_stats
来生成可视化报告,对用户友好。美中不足就是会在当前项目增加很多 html
统计可视化文件;
3.命令行工具 cloc
,简单易用,无侵入,使用门槛低;
综上所述,我们可以按照自己的使用场景来灵活的选用不同方式。