2010-04-28 152 views
18

有谁知道一个命令或脚本,它会输出每个作者承诺的项目后跟他们贡献的行数。Git - 有没有办法查看作者提交的行数?

例如类似下面的东西:

Author  Insertions Deletions 
Bob Dole  1240   409 
Sarah J  481   140 
Jim Helper 388   23 

干杯,本

+0

这大概可以有超过'混帐blame'的输出简单的awk/sed脚本来实现。 http://www.kernel.org/pub/software/scm/git/docs/git-blame.html – 2010-04-28 16:26:04

回答

5

混帐shortlog -sne

+1

我在我的回答中也提到了这一点,你打败了我。 – 2010-04-28 16:38:49

+40

这并不能告诉行数! – 2011-03-07 20:06:14

+2

这也是很酷的信息,但打印作者的提交数量,而不是行数。 – 2012-04-16 23:57:35

4

快速搜索挖出GitStats,虽然仅生成HTML输出。

更新:有点挖掘出来LookAtGit,这似乎更符合你在找什么。

第二次更新:正如对原始问题的评论所述,这也可以通过git与sed/awk一起完成。有一个很好的例子,说明如何在SO上执行此操作。right here

+0

但它是开源的,所以你可以让它产生任何你想要的输出格式... – 2010-04-28 16:24:40

+4

虽然如此我假设如果他有时间鞭打他自己,他不会要求预先存在的脚本。 – 2010-04-28 16:27:12

6

这给行统计某个作者:

git log --author="_Your_Name_Here_" --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 }' - 
+0

你能扩展你的答案来输出所有作者的统计数据吗? – mrgloom 2017-10-13 10:59:53

+0

@mrgloom,这应该工作:'while read i;做git log --author =“$ i”--pretty = tformat:--numstat | {printf“$ i:”; gawk'{add + = $ 1; subs + = $ 2; loc + = $ 1 - $ 2} END {printf“添加的行:%s删除的行:%s总行:%s \ n”,add,subs,loc}' - ; };完成<<(git shortlog -sne | sed's/[^ <]*<\([^>] * \)>/\ 1 /'|排序-u)' – 2017-10-24 23:19:38

相关问题