从Git存储库生成统计信息

Bas*_*Ben 346 git statistics graph

我正在寻找一些好的工具/脚本,允许我从git存储库生成一些统计信息.我在一些代码托管网站上看过这个功能,它们包含的信息如...

  • 每位作者提交
  • 提交每天/每周/每年/等.
  • 代码行随着时间的推移
  • ... 多得多

基本上我只是想知道我的项目随着时间的推移增长了多少,哪个开发人员提交大多数代码,等等.

Rus*_*lin 249

每位作者提交

git shortlog -s -n 
Run Code Online (Sandbox Code Playgroud)

  • 排除合并:`git shortlog -sn --no-merges` (52认同)
  • `git shortlog -s -n-从“ DEC 31 2017”开始,如果您要自给定日期开始过滤。伟大的年度审查;) (5认同)
  • @EnekoAlonso 我建议不要使用此类指标来衡量开发人员的绩效。您可能会看到误报掩盖了不良的开发实践,而一些最好的开发人员却被忽视了。除了 0 或太多之外,提交次数和开发人员绩效之间没有任何相关性。 (3认同)
  • e flag给你提交者的电子邮件地址`git shortlog -sne` (2认同)
  • 就个人而言,我更感兴趣的是每个人最后触摸多少行,或者每个人更改的行总数。不过,每个作者的提交也很有趣。 (2认同)
  • @托德100%同意。我是开玩笑的 (2认同)

Jak*_*ski 227

除了GitStats(git的历史统计生成的提及)xyld,用Python编写的,并要求为的Gnuplot图形,也有

  • 很酷,这很简单:`apt-get install gitstats`.然后在像这样的git目录上运行它:`gitstats~/gitdir/tmp/output` (4认同)
  • 甚至还有一个 Mac 应用程序:https://itunes.apple.com/us/app/gitstatx/id592679713?mt=12 (2认同)

tom*_*mgi 76

我在ruby中做一个git存储库统计信息生成器,它叫做git_stats.

您可以在项目页面上找到为某些存储库生成的示例.

以下列出了它可以做什么:

  • 一般统计
    • 文件总数(文本和二进制)
    • 总行数(已添加和删除)
    • 总提交
    • 作者
  • 活动(总和每位作者)
    • 按日期提交
    • 按小时提交
    • 按星期几提交
    • 按小时提交
    • 按年份提交
    • 按年度提交
    • 按年和月提交
  • 作者
    • 作者提交
    • 作者添加的行
    • 作者删除的行
    • 作者改变了行
  • 文件和行
    • 按日期
    • 通过扩展

如果您有任何想要添加或改进的内容,请告诉我,我将不胜感激.


Jee*_*ali 39

我试过http://gitstats.sourceforge.net/,开始很有意思.

一旦git clone git://repo.or.cz/gitstats.git完成,进入该文件夹,并说gitstats <git repo location> <report output folder>(报表创建一个新的文件夹,因为这会产生大量的文件)

这是一个快速的统计列表:

  • 活动
    • 一天中的一小时
    • 星期几
  • 作者
    • 作者名单
    • 月的作者
    • 年度作者
    • 按日期计算文件数
    • 扩展
  • 线
    • 代码行
  • 标签

  • 对于酿酒成瘾者来说,'brew install gnuplot`也适用. (6认同)
  • 它需要GnuPlot.要在Mac上安装Gnuplot,请从此处获取dmg http://www.miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x/将此修复程序应用于gnuplot bin, http://www.leancrew.com/all-this/2012/02/fixing-gnuplot-on-os-x-10-7-3/ (3认同)

dla*_*tte 15

一个快速的谷歌搜索引导我:http://gitstats.sourceforge.net/

你试过这个项目吗?我敢肯定有类似的项目.

  • 对于通过Google发现此问题的人来说,快速注释:gitstats*与上面的gitstat不同*.Zomg gitstats要好得多,因为它没有依赖地狱.它是自包含的,只是工作. (9认同)

Pat*_*ivo 11

只是想添加gitqlite到这里的答案组合中,这是一个命令行工具,可以对 git 数据执行 SQL 查询,例如SELECT * FROM commits WHERE author_name = 'foo'等。

完全披露,我是该项目的创建者/维护者!


ale*_*rul 10

repostat是 gitstats 工具的增强分支。

我不确定它是否与 pypi 上的同名项目有任何关系,因此最好的办法是从GitHub下载最新版本并将其安装在 Python 环境中。

截至 2019 年 11 月,在 PATH 中提供 gnuplot 后,我​​能够在 Windows 7 下使用 v1.2.0。


usage: repostat [-h] [-v] [-c CONFIG_FILE] [--no-browser] [--copy-assets]
                git_repo output_path

Git repository desktop analyzer. Analyze and generate git statistics in HTML
format

positional arguments:
git_repo              Path to git repository
output_path           Path to an output directory

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
                        Configuration file path
--no-browser          Do not open report in browser
--copy-assets         Copy assets (images, css, etc.) into report folder
                        (report becomes relocatable)
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说也很有效,2020 年 11 月,版本 2.2.0,在 Windows 10 上使用 Python 3.8(3.9 目前失败)。 (2认同)

whi*_*cko 9

git-bars 可以显示“每天/每周/每年/等等的提交”。

您可以使用pip install git-bars(参见https://github.com/knadh/git-bars)安装它

输出如下所示:

$ git-bars -p month
370 commits over 19 month(s)
2019-10  7    ??????
2019-09  36   ???????????????????????????????
2019-08  7    ??????
2019-07  10   ????????
2019-05  4    ???
2019-04  2    ?
2019-03  28   ????????????????????????
2019-02  32   ????????????????????????????
2019-01  16   ??????????????
2018-12  41   ???????????????????????????????????
2018-11  52   ?????????????????????????????????????????????
2018-10  57   ??????????????????????????????????????????????????
2018-09  37   ????????????????????????????????
2018-08  17   ??????????????
2018-07  1    
2018-04  7    ??????
2018-03  12   ??????????
2018-02  2    ?
2016-01  2    ?
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 5

如果您的项目在 GitHub 上,那么您现在(2013 年 4 月)就有了Pulse(请参阅“了解 Pulse ”):

它更受限制,不会显示您可能需要的所有统计信息,但可用于任何 GitHub 项目。

Pulse 是发现项目最近活动的好方法。
Pulse 将向您显示谁一直在积极提交以及项目默认分支中发生了什么变化

脉冲

您可以在导航栏左侧找到链接

关联

请注意,目前还没有 API 来提取该信息。