哪个Git提交统计数据易于提取

Jes*_*sen 87 git statistics logging code-statistics

以前我很享受TortoiseSvn能够为给定的SVN存储库生成简单的提交统计数据.我想知道Git中有什么可用,我特别感兴趣:

  • 每个用户的提交数量
  • 每个用户更改的行数
  • 随时间变化的活动(例如每周汇总的变化)

有任何想法吗?

Pat*_*otz 189

实际上,git已经有了一个命令:

git shortlog
Run Code Online (Sandbox Code Playgroud)

在你的情况下,听起来你对这种形式感兴趣:

git shortlog -sne
Run Code Online (Sandbox Code Playgroud)

请参阅--help各种选项.

您可能也对GitStats项目感兴趣.他们有一些例子,包括Git项目统计数据.从GitStat主页:

以下是当前生成的一些统计信息的列表:

  • 一般统计:总文件,行,提交,作者.
  • 活动:按小时,星期几,星期几,一年中的一个月,一年和一个月以及一年提交.
  • 作者:作者列表(姓名,提交(%),第一次提交日期,最后提交日期,年龄),月份作者,年份作者.
  • 文件:按日期计算的文件数,扩展名
  • 行:按日期的代码行

  • 还有`git shortlog -sn --no-merges`从计数中删除"merge commits". (13认同)
  • 2010年2月:[Linus攻击!](http://gitstats.sourceforge.net/examples/git/authors.html#cumulated_added_lines_of_code_per_author) (4认同)

Mic*_*ker 24

首先,您不必拉动任何东西(如在网络拉动中),因为您在本地拥有整个存储库和整个历史记录.我很确定有一些工具可以为您提供统计信息,但有时您可以通过命令行进行创作.例如,这(仅仅是我的头脑)将为您提供每个用户的提交数量:

git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Run Code Online (Sandbox Code Playgroud)

您要求的其他统计数据可能需要更多考虑.您可能希望查看可用的工具.谷歌搜索工具的git statisticsGitStats,我没有经验,甚至不知道如何让它在Windows上运行,但你可以尝试.

  • `git shortlog -s -n`(来自http://stackoverflow.com/questions/1828874/generating-statistics-from-git-repository) (6认同)
  • `git shortlog`确实是正确的命令,但即使没有它,上面的复杂awk命令也可以由`|重新命令.排序| uniq -c` (4认同)

Rav*_*ati 6

到目前为止我认识的最好的工具是gitinspector.它为每个用户,每周等提供设定报告

您可以使用npm安装如下

npm install -g gitinspector
Run Code Online (Sandbox Code Playgroud)

获取链接的详细信息如下

https://www.npmjs.com/package/gitinspector
https://github.com/ejwa/gitinspector/wiki/Documentation
https://github.com/ejwa/gitinspector
Run Code Online (Sandbox Code Playgroud)

示例命令是

gitinspector -lmrTw
gitinspector --since=1-1-2017
Run Code Online (Sandbox Code Playgroud)

等等


Jes*_*sen 5

感谢黑客回答这个问题.但是,我发现这些修改后的版本更适合我的特定用法:

git log --pretty=format:%an \
| awk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'\
| sort -r
Run Code Online (Sandbox Code Playgroud)

(使用awk,因为我没有在我的mac上gawk,并在最顶层排序最活跃的comitter.)它输出如下列表:

 1205 therikss
 1026 lsteinth
  771 kmoes
  720 minielse
  507 pagerbak
  269 anjohans
  205 mfoldbje
  188 nstrandb
  133 pmoller
   58 jronn
   10 madjense
    3 nlindhol
    2 shartvig
    2 THERIKSS
Run Code Online (Sandbox Code Playgroud)

  • 这必须是`sort -rn`. (2认同)