Git - 有没有一种方法可以查看作者提交的行数?

21

有没有人知道一条命令或脚本,可以输出每个提交到项目中的作者,然后是他们贡献的代码行数。

例如,类似于以下内容:

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

祝好,Ben


这可能可以通过在 git-blame 输出上运行简单的 awk/sed 脚本来实现。http://www.kernel.org/pub/software/scm/git/docs/git-blame.html - Mark Rushakoff
3个回答

9
这将为特定作者提供行统计信息:
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 }' -

你能否扩展你的答案,以输出所有作者的统计数据? - mrgloom
2
@mrgloom,这应该可以工作:while read i; do git log --author="$i" --pretty=tformat: --numstat | { printf "$i: "; gawk ' { add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -; }; done < <(git shortlog -sne | sed 's/[^<]*<\([^>]*\)>/\1/' | sort -u) - Fabio A.

4

我快速搜索找到了GitStats,不过它只生成HTML输出。

更新:进一步搜索发现LookAtGit,似乎更符合您的要求。

第二次更新:如原问题的评论中所提到的,这也可以通过git结合sed/awk来实现。在SO上有一个很好的例子right here


但是它是开源的,所以你可以让它生成任何你想要的输出格式... - Dave DeLong
4
没错,不过我猜如果他有时间自己写一个脚本的话,就不会请求一份现成的脚本了。 - Damien Wilson

1

git shortlog -sne


1
我也打算在我的回答中提到这一点,你比我更快地说出了它。 - Damien Wilson
50
那并没有告诉我们行数的数量! - Nicolas Buduroi
3
这是个很酷的信息,但它列出的是每位作者提交的代码次数,而不是代码行数。 - Dan Croak
1
这是回答完全不同的问题。我不确定为什么它被投票了,但看看其他答案。 - Skeets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接