git 应该是目前使用最为广泛的代码管理仓库了,提供了非常简单的命令行工具,通过这些命令行可以进行一些常见的代码统计。
这里简单介绍一些常用的命令。
基本命令
查看git上的个人代码量
注意,这里统计的是从代码库创建以来所有的代码提交情况。
$ 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 }' -
也可以指定范围,参数包括了 --since=2018-05-01
--until=2018-09-07
--since=2.days 2.weeks 2.months 2.years
等等。
统计所有人提交代码量
$ 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
仓库提交者排名前五
$ git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
总的提交人数
$ git log --pretty='%aN' | sort -u | wc -l
总提交次数统计
$ git log --oneline | wc -l
统计总的代码行数
$ find . -name "*.m" -or -name "*.h" -or -name "*.c" | xargs grep -v "^$" | wc -l
工具
有一个可视化的 git 统计工具,使用 Python 编写,可以参考 github.com gitstats, 以及 tokei-Rust 代码统计工具。
cloc
对于当前代码库,有一个开源的 Perl 工具 cloc
统计不同语言的代码使用情况。
在 CentOS 中可以直接通过 yum install cloc
安装,然后在代码库中直接执行 cloc .
即可。