git log统计代码量命令

今天看了下,一年快到了,在这里码字17万,而后想统计一下码了多少行代码,以下html

1,统计某人的代码提交量,包括增长,删除,共计:git

git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -

结果(做者名称以*替换):编程

git log --author="*********" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -
added lines: 18768 removed lines : 9624 total lines: 9144

不到一万行啊,略惭愧...bash

2, 提交次数排名前 5的仓库提交者(若是看所有,去掉 head 管道便可)ui

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

所有排名结果spa

5168 ys.y
3220 ysz
2052 ss
1860 wx
1180 j.l
1179 zc
916 gcz
801 eGG
761 scy
756 q.z
666 jl.x
602 cage
590 kirk
575 gk.c
525 yj.y
432 qb
391 zh.s
345 j.x
329 cw
280 h.y
168 allen
93 hale
余下略...

3, 提交次数排名前 5的仓库提交者邮箱:这个统计可能不会太准,由于不少人有不一样的邮箱,但会使用相同的名字.net

git log --pretty=format:%ae | gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }' | sort -u -n -r | head -n 5

4, 代码贡献者人数统计code

git log --pretty='%aN' | sort -u | wc -l

5, 总提交数统计orm

git log --oneline | wc -l

6, 添加或修改的代码行数htm

git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/'

7, 统计某段时间内的代码变化量

git log --pretty=tformat: --since ==2017-05-11 --until=2018-03-07 --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

 

git log 参数说明:
--author   指定做者
--stat   显示每次更新的文件修改统计信息,会列出具体文件列表

--numstat   统计每一个commit 的文件修改行数,包括增长,删除,并列出文件列表
--shortstat    统计每一个commit 的文件修改行数,包括增长,删除,但不列出文件列表

 
-p 选项展开显示每次提交的内容差别,用 -2 则仅显示最近的两次更新
例如:git log -p -2
--name-only 仅在提交信息后显示已修改的文件清单
--name-status 显示新增、修改、删除的文件清单
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非全部的 40 个字符
--relative-date 使用较短的相对时间显示(好比,"2 weeks ago" )
--graph 显示 ASCII 图形表示的分支合并历史
--pretty 使用其余格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)
       例如: git log --pretty=oneline ; git log --pretty=short ; git log --pretty=full ; git log --pretty=fuller;
--pretty=tformat: 能够定制要显示的记录格式,这样的输出便于后期编程提取分析
       例如:git log --pretty=format:""%h - %an, %ar : %s""

--since  限制显示输出的范围,
例如: git log --since=2.weeks    显示最近两周的提交
选项 说明                
-(n)    仅显示最近的 n 条提交                    
--since, --after 仅显示指定时间以后的提交。                    
--until, --before 仅显示指定时间以前的提交。                  
--author 仅显示指定做者相关的提交。                
--committer 仅显示指定提交者相关的提交。

一些例子:

git log --until=1.minute.ago // 一分钟以前的全部

log git log --since=1.day.ago //一天以内的

log git log --since=1.hour.ago //一个小时以内的

log git log --since=`.month.ago --until=2.weeks.ago //一个月以前到半个月以前的

log git log --since ==2013-08.01 --until=2013-09-07 //某个时间段的

log  git blame 看看某一个文件的相关历史记录
例如:git blame index.html --date short

 

参考连接:

http://blog.csdn.net/dwarven/article/details/46550117

http://blog.csdn.net/liusuihui/article/details/52885417

相关文章
相关标签/搜索