现在我们的项目大多都是使用git进行代码版本管理了。那么,接近年关,项目要通过git统计工作量,写ppt,画大饼。我们需要如何给老板提供我们的工作量呢?本文介绍如何获取Git项目的代码提交行数。
1、软件实现
我们可以通过git web 管理软件来实现代码的统计工作,这样也方便平时对于git的项目在线管理。
Git web管理工具目前市面上有很多,功能多大同小异。可以根据需要选择适合的git web管理工具:
- GitWeb
- GitLab
- Gerrit
2、命令获取
下面来说下,如何通过命令来获取git项目的代码量统计。如下提供几种代码统计的命令,需要注意的是由于命令中存在linux命令对返回数据的处理,所以当前的统计命令建议在linux
内核系统中使用。
- 统计Git项目中的所有代码函数
[root@VM_0_16_centos mediaWebsite]# git log --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 }'
added lines: 112352, removed lines: 62802, total lines: 49550 # 返回信息
- 统计时间段呢产生的代码行数
通过--since
参数填写统计起始时间,--util
填写统计截止时间。
[root@VM_0_16_centos mediaWebsite]# git log --since=2020-06-01 --until==2022-11-09 --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 }'
added lines: 112352, removed lines: 62802, total lines: 49550 # 返回统计信息
- 统计指定开发者时间段内产生的代码行数
通过author参数指定开发者,注意author字段使用的是首次提交git项目配置的git config user.name
字段,可以通过git config --list
查看。
[root@VM_0_16_centos mediaWebsite]# git log --since =2022-01-01 --until==2022-11-09 --author="caihaifei" --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 }'
added lines: 59175, removed lines: 48669, total lines: 10506 # 返回信息
- 统计用户提交次数排名
root@VM_0_16_centos mediaWebsite]# git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r
42 caihaifei #返回提交此处和author
6 =
1 amikoj
- 用户提交数统计
[root@VM_0_16_centos mediaWebsite]# git log --author="caihaifei" --since =2022-01-01 --until==2022-11-09 --oneline | wc -l
42 #返回提交次数
其实可以通过这些命令通过后端服务进行整合实现一个代码统计系统。这样就不用每次都要输入命令了。