I’m looking for some good tools/scripts that allow me to generate a few statistics from a git repository. I’ve seen this feature on some code hosting sites, and they contained information like…
- commits per author
- commits per day/week/year/etc.
- lines of code over time
- … much more
Basically I just want to get an idea how much my project grows over time, which developer commits most code, and so on.
commits per author
git shortlog -s -n
- gitstat (SourceForge) project (web-based git statistics interface), written in PHP and Perl,
- Git Statistics, aka gitstats (metrics framework designed to gather statistics on git repositories), written in Python, result of git-statistics project at Google Summer of Code 2008 This is not a web app
- gitinspector Is a rather new, CLI based Python tool for generating nice reports
- Hercules – native app without dependencies, written in Go, which specializes in advanced analysis types.
I’m doing a git repository statistics generator in ruby, it’s called git_stats.
You can find examples generated for some repositories on project page.
Here is a list of what it can do:
- General statistics
- Total files (text and binary)
- Total lines (added and deleted)
- Total commits
- Activity (total and per author)
- Commits by date
- Commits by hour of day
- Commits by day of week
- Commits by hour of week
- Commits by month of year
- Commits by year
- Commits by year and month
- Commits by author
- Lines added by author
- Lines deleted by author
- Lines changed by author
- Files and lines
- By date
- By extension
If you have any idea what to add or improve please let me know, I would appreciate any feedback.
I tried http://gitstats.sourceforge.net/, starts are very interesting.
git clone git://repo.or.cz/gitstats.git is done, go to that folder and say
gitstats <git repo location> <report output folder> (create a new folder for report as this generates lots of files)
Here is a quick list of stats from this:
- hour of the day
- day of week
- List of Authors
- Author of Month
- Author of Year
- File count by date
- Lines of Code
A quick google search lead me to: http://gitstats.sourceforge.net/
Have you tried this project? I’m sure there are similar projects.
git-bars can show you “commits per day/week/year/etc”.
You can install it with
pip install git-bars (cf. https://github.com/knadh/git-bars)
The output looks like this:
$ 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 is an enhanced fork of gitstats tool.
I’m not sure if it’s in any way related to the project with the same name on pypi, so your best bet is to download the latest release from GitHub and install it in your Python environment.
As of November 2019, I was able to use v1.2.0 under Windows 7, after making gnuplot available in PATH.
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)
It is more limited, and won’t display all the stats you might need, but is readily available for any GitHub project.
Pulse is a great way to discover recent activity on projects.
Pulse will show you who has been actively committing and what has changed in a project’s default branch:
You can find the link to the left of the nav bar.
Note that there isn’t (yet) an API to extract that information.
And if you prefer hosted solution, you should check out Open Hub (formerly Ohloh.net). It is nice, but don’t expect large statistics.
Just want to add
gitqlite into the mix of answers here, which is a command-line tool that enables execution of SQL queries on git data, such as
SELECT * FROM commits WHERE author_name = 'foo' etc.
Full disclosure, I’m a creator/maintainer of the project!
Just yesterday I’ve added my git-analytics docker-compose file, which builds up several containers to start analyzing multiple git repositories against each other.
It is able to show you commit statistics over time about the author and also several diff statistics.
You can use the provided angular client and also kibana to visualize the statistics.
It will be improved over time.