【问题标题】:Generating statistics from Git repository [closed]从 Git 存储库生成统计信息 [关闭]
【发布时间】:2010-12-22 04:21:05
【问题描述】:

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

  • 每位作者的提交次数
  • 每天/每周/每年/等等的提交。
  • 随时间变化的代码行数
  • 图表
  • ...更多

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

【问题讨论】:

  • 如果无法安装 gitstats,至少可以使用基本的 git 命令获取 作者的代码行数git ls-files | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep -I '^author '; done | sort -f | uniq -ic | sort -n --reverse

标签: git graph statistics


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    就在昨天,我添加了我的 git-analytics docker-compose 文件,该文件构建了多个容器以开始相互分析多个 git 存储库。

    它能够向您显示有关作者随时间推移的提交统计信息以及一些差异统计信息。

    您可以使用提供的 Angular 客户端和 kibana 来可视化统计数据。

    https://github.com/alexejsailer/git-analytics-docker

    随着时间的推移会有所改进。

    Angular 客户端截图

    Kibana 客户端截图

    ]

    【讨论】:

      【解决方案3】:

      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)
      

      【讨论】:

      • 这在 2020 年 11 月,版本 2.2.0,在 Windows 10 上使用 Python 3.8(目前 3.9 失败)对我来说也很有效。
      【解决方案4】:

      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    ▀
      

      【讨论】:

        【解决方案5】:

        除了xyld 提到的GitStatsgit 历史统计生成器),用 Python 编写并且需要 Gnuplot 来生成图形,还有

        【讨论】:

        【解决方案6】:

        如果您更喜欢托管解决方案,您应该查看Open Hub(以前称为 Ohloh.net)。这很好,但不要指望有大量的统计数据。

        【讨论】:

        • 如果你对有点笨拙的界面和大约 24 小时更新没问题,ohlohi 是不错的选择,否则我会选择 DIY 方法。
        • ohloh 很酷,但它只适用于公共回购。此外,它适用于许多 VCS,而不仅仅是 git。
        • @naught101 您可以尝试gitential.com 作为替代方案。它处于测试阶段,但可以衡量和可视化项目、团队、存储库和个人开发人员的编码时间、生产力。
        【解决方案7】:

        如果您的项目在 GitHub 上,那么您现在(2013 年 4 月)拥有 Pulse(请参阅“Get up to speed with Pulse”):

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

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

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

        请注意,(还)没有用于提取该信息的 API。

        【讨论】:

          【解决方案8】:

          我正在用 ruby​​ 做一个 git 存储库统计生成器,它叫做git_stats

          您可以在project page 上找到为某些存储库生成的示例。

          以下是它的功能列表:

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

          如果您知道要添加或改进什么,请告诉我,我们将不胜感激。

          【讨论】:

          • 对象计数和存储库大小将是对常规统计的很好补充
          • 提交时间:月份中的哪一天。他们在月底更活跃吗?
          • 太棒了!您能否添加有关问题和拉取请求的统计信息?
          【解决方案9】:

          每位作者的提交次数

          git shortlog -s -n 
          

          【讨论】:

          • 排除合并:git shortlog -sn --no-merges
          • e 标志为您提供提交者电子邮件地址git shortlog -sne
          • 就我个人而言,我更感兴趣的是每个人最后一次触摸的行数,或者每人更改的行数。不过,每位作者的提交也很有趣。
          • git shortlog -s -n --since "DEC 31 2017" 如果您想从给定日期开始过滤。非常适合年度审查;)
          • @EnekoAlonso 我建议不要使用此类指标来衡量开发人员的绩效。您可能会看到掩盖不良开发实践的误报,而一些最优秀的开发人员会被忽视。除了 0 或方式、方式、方式太多之外,提交次数与开发人员性能之间没有相关性。
          【解决方案10】:

          我试过http://gitstats.sourceforge.net/,开始很有趣。

          git clone git://repo.or.cz/gitstats.git 完成后,转到该文件夹​​并说 gitstats <git repo location> <report output folder>(为报告创建一个新文件夹,因为这会生成大量文件)

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

          • 活动
            • 一天中的小时
            • 星期几
          • 作者
            • 作者列表
            • 本月作者
            • 年度作者
          • 文件
            • 按日期统计的文件数
            • 扩展
            • 代码行
          • 标签

          【讨论】:

          【解决方案11】:

          快速谷歌搜索将我带到:http://gitstats.sourceforge.net/

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

          【讨论】:

          • 对通过 Google 找到此内容的任何人的快速说明:gitstats 与上面的 gitstat 相同。 Zomg gitstats 要好得多,因为它没有依赖地狱。它是独立的,并且可以正常工作。
          • 除了 gnuplot-py 和公司似乎想在我的网络服务器上的 Fedora 上拖入 40MB 的 deps :(
          猜你喜欢
          • 2010-10-27
          • 1970-01-01
          • 1970-01-01
          • 2014-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-10
          • 2015-02-23
          相关资源
          最近更新 更多