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

每个作者提交 每天/每周/每年/等等提交。 代码行数随时间变化 图 ... 更

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


快速搜索谷歌,我找到了:http://gitstats.sourceforge.net/

你试过这个项目吗?我相信有类似的项目。


除了xyld提到的GitStats (git历史统计生成器)之外,它是用Python编写的,并且需要Gnuplot来生成图形

gitstat (SourceForge)项目(基于web的git统计接口),用PHP和Perl编写, Git Statistics,又名gitstats(用于收集Git存储库的统计数据的度量框架),用Python编写,是谷歌Summer of Code 2008 Git - Statistics项目的结果 gitinspector是一个相当新的、基于CLI的Python工具,用于生成漂亮的报告 赫拉克勒斯-原生应用程序,没有依赖,用Go编写,专门用于高级分析类型。


每个作者提交

git shortlog -s -n 

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

一旦git克隆git://repo.or.cz/gitstats。Git完成后,进入该文件夹,并输入gitstats < Git repo location> <report output folder>(为report创建一个新文件夹,因为这会生成很多文件)

这里是一个快速的数据列表:

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


如果你更喜欢托管解决方案,你应该看看Open Hub(以前的Ohloh.net)。这很好,但不要期待大量的统计数据。


我在ruby中做一个git仓库统计生成器,它被称为git_stats。

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

以下是它能做的事情:

一般的统计数据 文件总数(文本和二进制) 总行数(添加和删除) 总犯 作者 活动(总数和每个作者) 按日期提交 按小时提交 按星期的一天提交 按每周的小时提交 按每年的月份提交 按年提交 按年和月提交 作者 由作者提交 作者新增行数 被作者删除的行 作者修改的行数 文件和行 按日期 通过扩展

如果您有任何想法要添加或改进,请让我知道,我将感谢任何反馈。


如果你的项目在GitHub上,你现在(2013年4月)有Pulse(参见“跟上Pulse的速度”):

它更有限,不会显示你可能需要的所有统计数据,但可以用于任何GitHub项目。

Pulse是一个发现项目最近活动的好方法。 Pulse将显示谁在积极提交,以及项目默认分支中发生了哪些变化:

你可以在导航栏的左边找到链接。

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


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    ▀

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)

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

它能够向您显示关于作者的一段时间的提交统计数据,以及一些不同的统计数据。

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

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

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

Angular客户端截图

Kibana客户端截图

]


只是想把gitqlite添加到这里的混合答案中,这是一个命令行工具,允许对git数据执行SQL查询,比如SELECT * FROM commit WHERE author_name = 'foo'等。

完全公开,我是项目的创建者/维护者!