从Git存储库生成统计信息


373

我正在寻找一些好的工具/脚本,使我能够从git存储库生成一些统计信息。我已经在某些代码托管网站上看到了此功能,其中包含诸如...的信息。

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

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

Answers:


249

除了xyld提到的GitStatsgit历史统计生成器之外,它是用Python编写的,并且需要Gnuplot来绘制图形,此外还有


1
参见xyld的答案。gitstats(不是gitstat)可能是最好的选择。
杰·帕罗林

我在安装readline-6.2.tar.gz和gnuplot之后安装了gitstats。但是随后发现它缺少生成统计图像所需的库,从而导致在查看gitstats输出时缺少png。:所以几乎遵循了这一得到它正常工作dansanderson.com/blog/2011/03/...
大卫面包车Dugteren

作为参考,这套工具非常好用和简单:github.com/dustin/bindir。它们基于google pithon图表,并且易于使用:dustin.github.io/2009/01/11/timecard.html
Snicolas 2013年


4
冷静,这只是工作:apt-get install gitstats。然后在git目录中运行,如下所示:gitstats ~/gitdir /tmp/output
Luc

275

每位作者提交

git shortlog -s -n 

63
排除合并:git shortlog -sn --no-merges
doblak

4
e标志为您提供了提交者的电子邮件地址 git shortlog -sne
Kalpa Gunarathna

1
就个人而言,我对每个人最后触摸的行数或每人更改的行总数更感兴趣。每个作者的提交数量也很有趣。
内森·罗耶

12
git shortlog -s -n --since "DEC 31 2017"如果要从给定日期开始过滤。非常适合年度审核;)
Eneko Alonso

1
@托德100%同意。我的意思是开个玩笑
Eneko Alonso

78

我正在用ruby做一个git仓库统计信息生成器,它叫做git_stats

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

以下是其功能的列表:

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

如果您有任何想法要增加或改进,请告诉我,我们将不胜感激。


对象计数和存储库大小将是常规统计信息的不错补充
pdeschen 2013年

提交者:每月的一天。他们在月底更活跃吗?
Ole Tange

很酷!过去曾见过Havent
fb

确实不错,但是唯一令我困扰的是写在Rubby上的:D
Georgi Peev

43

我尝试了http://gitstats.sourceforge.net/,开始非常有趣。

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

这里是一个简短的统计信息列表:

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

3
它需要GnuPlot。要安装Gnuplot,在Mac上,请从此处获取dmg miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x将此修复程序应用于gnuplot容器leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi 2012年

@Loretoparisi,第一个链接不再起作用,我在此处创建了如何在Mac OSX 10.8.2上使用Gitstats的教程:softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

在ubuntu中,sudo apt-get install gnuplot
okwap

在Windows上运行它的提示:stackoverflow.com/a/29384484/24267 不幸的是,我没有发现gitstats太有用-我希望看到每个作者的统计数据更好的细分。
mhenry1384


16

快速的Google搜索将我引导至:http : //gitstats.sourceforge.net/

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


9
任何人谁通过谷歌发现这个快速注:gitstats是一样的东西gitstat以上。Zomg gitstats更好,因为它没有依赖地狱。它是自包含的,并且可以正常工作。
杰·帕罗林

1
除了gnuplot-py和company似乎想在我的Web服务器上的Fedora上拖入40MB的Deps :(
Aiden Bell

4

如果您的项目在GitHub上,那么您现在(2013年4月)拥有Pulse(请参见“ 快速掌握Pulse ”):

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

Pulse是发现项目近期活动的好方法。
Pulse将向您显示谁一直在积极提交以及项目的默认分支中发生了哪些更改

脉冲

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

链接

请注意,还没有API可以提取该信息。


4

并且,如果您更喜欢托管解决方案,则应查看Open Hub(以前称为Ohloh.net)。很好,但是不要指望大量的统计信息。


如果您可以使用有点笨拙的界面并且可以在大约24小时内进行更新,那么哦,这是个不错的选择,否则我会选择DIY方法。
drahnr 2012年

1
ohloh很酷,但仅适用于公共存储库。此外,它还可以用于很多VCS,而不仅仅是git。
naught101

@ naught101您可以尝试使用gitential.com作为替代方案。它处于测试阶段,但是可以测量并可视化编码时间,项目,团队,仓库和个人开发人员的工作效率。
kszucs

3

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

您可以使用pip install git-bars(cf. 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    ▀

3

重新发布是gitstats工具的增强版。

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

截至2019年11月,在gnuplot在PATH中可用之后,我能够在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)

2

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

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

您可以使用提供的角度客户端以及kibana可视化统计信息。

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

随着时间的推移,它会得到改善。

Angular Client屏幕截图

Angular Client屏幕截图

Kibana客户端截图

Kibana客户端截图]



0

它不一定提供脚本,但是此称为Haystack的服务基本上是根据git活动提供统计信息,趋势和警报。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.