功能说明
统计当前项目代码分别由哪些人提交,新增/删除/累计行数
其中累计行数=新增-删除
,有可能是负数
实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
printf "%10s\t%10s\t%10s\t%10s\n" "name" "add" "remove" "total";
printf "%s--------------------------------------------------------------\n" "";
git log --format='%aN' |sort -u | while read name;
do
git log --author="$name" --pretty=tformat: --numstat |\
# 过滤掉自动生成的代码,第三方引入的代码
grep -v "stub/" |grep -v "vendor/" | \
awk '{
add += $1;
subs += $2;
loc += $1 - $2
} END {
printf "%10s\t%10s\t%10s\t%10s\n", username, add, subs, loc
}' username="${name}" -;
done
使用方法
把上述脚本保存在code_statis.sh
文件中,然后在git工程目录下执行即可
1
bash ${bash_path}/code_statis.sh
输出效果:
1
2
3
4
5
6
➜ myproj git:(master) bash ~/code_statis.sh
name add remove total
--------------------------------------------------------------
axcdzhang 599 88 511
dxefjliu 3701 1042 2659
dddddxin 1032 26 1006