Generieren von Statistiken aus dem Git-Repository


373

Ich suche nach guten Tools / Skripten, mit denen ich einige Statistiken aus einem Git-Repository generieren kann. Ich habe diese Funktion auf einigen Code-Hosting-Sites gesehen und sie enthielten Informationen wie ...

  • Commits pro Autor
  • Commits pro Tag / Woche / Jahr / etc.
  • Codezeilen im Laufe der Zeit
  • Grafiken
  • ... viel mehr

Grundsätzlich möchte ich nur eine Vorstellung davon bekommen, wie stark mein Projekt im Laufe der Zeit wächst, welcher Entwickler den meisten Code festschreibt und so weiter.

Antworten:


250

Neben GitStats ( Git History Statistics Generator ), der von xyld erwähnt wird , in Python geschrieben ist und Gnuplot für Diagramme benötigt, gibt es auch

  • gitstat ( SourceForge ) -Projekt ( webbasierte Git-Statistikschnittstelle ), geschrieben in PHP und Perl,
  • Git Statistics , auch bekannt als gitstats ( Metrik-Framework zum Sammeln von Statistiken zu Git-Repositorys ), geschrieben in Python, Ergebnis eines Git-Statistik-Projekts bei Google Summer of Code 2008 Dies ist keine Web-App
  • gitinspector ist ein ziemlich neues, CLI-basiertes Python-Tool zum Generieren netter Berichte
  • Hercules - native App ohne Abhängigkeiten, geschrieben in Go, spezialisiert auf erweiterte Analysetypen.

1
siehe xylds Antwort. gitstats (nicht gitstat) ist wahrscheinlich die beste Wahl.
Jay Paroline

Nach der Installation von readline-6.2.tar.gz und gnuplot muss gitstats installiert werden. Dann stellte sich jedoch heraus, dass die für die Erstellung der Statistikbilder erforderlichen Bibliotheken fehlten, was dazu führte, dass beim Anzeigen der Gitstats-Ausgabe pngs fehlten. So ziemlich folgte dies, um es richtig zu funktionieren: dansanderson.com/blog/2011/03/…
David van Dugteren

Als Referenz ist dieser Satz von Tools wirklich nett und einfach: github.com/dustin/bindir . Sie basieren auf Google Pithon Chart und sind einfach zu bedienen: Dustin.github.io/2009/01/11/timecard.html
Snicolas


4
Cool, das funktioniert einfach : apt-get install gitstats. Führen Sie es dann in einem Git-Verzeichnis wie folgt aus:gitstats ~/gitdir /tmp/output
Luc

275

Commits pro Autor

git shortlog -s -n 

63
Zusammenschlüsse ausschließen:git shortlog -sn --no-merges
Doblak

4
Die Flagge gibt Ihnen die E-Mail-Adresse des Committers git shortlog -sne
Kalpa Gunarathna

1
Persönlich interessiert mich mehr, wie viele Zeilen jede Person zuletzt berührt hat oder wie viele Zeilen pro Person insgesamt geändert wurden. Interessant sind aber auch Commits pro Autor.
Nathan Loyer

12
git shortlog -s -n --since "DEC 31 2017"Wenn Sie nach einem bestimmten Datum filtern möchten. Ideal für jährliche Bewertungen;)
Eneko Alonso

1
@Todd 100% zustimmen. Ich meinte es als Witz
Eneko Alonso

78

Ich mache einen Git-Repository-Statistikgenerator in Ruby, er heißt git_stats .

Beispiele für einige Repositorys finden Sie auf der Projektseite .

Hier ist eine Liste der Möglichkeiten:

  • Allgemeine Statistiken
    • Gesamtzahl der Dateien (Text und Binär)
    • Zeilen insgesamt (hinzugefügt und gelöscht)
    • Total Commits
    • Autoren
  • Aktivität (insgesamt und pro Autor)
    • Commits nach Datum
    • Commits nach Tageszeit
    • Commits nach Wochentag
    • Commits pro Stunde der Woche
    • Commits nach Monat des Jahres
    • Commits nach Jahr
    • Commits nach Jahr und Monat
  • Autoren
    • Commits vom Autor
    • Vom Autor hinzugefügte Zeilen
    • Vom Autor gelöschte Zeilen
    • Zeilen vom Autor geändert
  • Dateien und Zeilen
    • Nach Datum
    • Durch Erweiterung

Wenn Sie eine Idee haben, was Sie hinzufügen oder verbessern möchten, lassen Sie es mich bitte wissen. Ich würde mich über Feedback freuen.



Commits bis: Tag des Monats. Sind sie am Monatsende aktiver?
Ole Tange

SEHR COOL! Havent in der Vergangenheit gesehen
fb

Wirklich gute Arbeit, aber das einzige, was mich stört, ist, dass auf Rubby geschrieben steht: D
Georgi Peev

43

Ich habe versucht, http://gitstats.sourceforge.net/ , Starts sind sehr interessant.

Wenn Sie git clone git://repo.or.cz/gitstats.gitfertig sind, gehen Sie zu diesem Ordner und sagen Sie gitstats <git repo location> <report output folder>(erstellen Sie einen neuen Ordner für den Bericht, da dadurch viele Dateien generiert werden).

Hier ist eine kurze Liste der Statistiken:

  • Aktivität
    • Stunde des Tages
    • Wochentag
  • Autoren
    • Liste der Autoren
    • Autor des Monats
    • Autor des Jahres
  • Dateien
    • Anzahl der Dateien nach Datum
    • Erweiterungen
  • Linien
    • Zeilen von Code
  • Stichworte

3
es braucht GnuPlot. Um Gnuplot zu installieren, holen Sie sich auf dem Mac das dmg von hier miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x. Wenden Sie dieses Update auf den Gnuplot- Bin an, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, der erste Link funktioniert nicht mehr. Ich habe hier ein Tutorial zur Verwendung von Gitstats unter Mac OSX 10.8.2 erstellt: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

In Ubuntu installiert
Sudo Apt

Tipps, wie man es unter Windows zum Laufen bringt : stackoverflow.com/a/29384484/24267 Leider fand ich gitstats nicht allzu nützlich - ich würde mir eine bessere Aufschlüsselung der Statistiken für jeden Autor wünschen.
Mhenry1384

Für Windows-Benutzer: codeproject.com/Tips/830613/…
Dani

16

Eine schnelle Google-Suche führte mich zu: http://gitstats.sourceforge.net/

Haben Sie dieses Projekt ausprobiert? Ich bin sicher, dass es ähnliche Projekte gibt.


9
Kurzer Hinweis für alle, die dies über Google finden: gitstats ist nicht dasselbe wie gitstat oben. Zomg Gitstats ist viel besser, insofern es keine Abhängigkeitshölle gibt. Es ist in sich geschlossen und funktioniert einfach.
Jay Paroline

1
Außer gnuplot-py und Unternehmen scheint 40 MB Deps auf Fedora auf meinem Webserver einziehen zu wollen :(
Aiden Bell

4

Wenn sich Ihr Projekt auf GitHub befindet, haben Sie jetzt (April 2013) Pulse (siehe " Machen Sie sich mit Pulse auf dem Laufenden "):

Es ist eingeschränkter und zeigt nicht alle Statistiken an, die Sie möglicherweise benötigen, ist jedoch für jedes GitHub-Projekt verfügbar.

Pulse ist eine großartige Möglichkeit, aktuelle Aktivitäten in Projekten zu entdecken.
Pulse zeigt Ihnen, wer sich aktiv verpflichtet hat und was sich im Standardzweig eines Projekts geändert hat :

Impuls

Sie finden den Link links neben der Navigationsleiste .

Verknüpfung

Beachten Sie, dass es (noch) keine API gibt, um diese Informationen zu extrahieren.


4

Und wenn Sie eine gehostete Lösung bevorzugen, sollten Sie sich Open Hub (ehemals Ohloh.net) ansehen. Es ist schön, aber erwarten Sie keine großen Statistiken.


Wenn Sie mit einer etwas ungeschickten Benutzeroberfläche und Aktualisierungen auf ~ 24-Stunden-Basis einverstanden sind, ist dies eine gute Wahl, andernfalls würde ich mich für den DIY-Ansatz entscheiden.
Drahnr

1
Ohloh ist cool, aber es funktioniert nur auf öffentlichen Repos. Es funktioniert auch mit vielen VCSs, nicht nur mit Git.
naught101

@ naught101 Alternativ können Sie auch gitential.com ausprobieren . Es befindet sich in der Beta-Phase, misst und visualisiert jedoch die Codierungsstunden, die Produktivität für Projekte, Teams, Repos und einzelne Entwickler.
kszucs

3

git-bars kann Ihnen "Commits pro Tag / Woche / Jahr / etc" zeigen.

Sie können es mit installieren pip install git-bars(vgl. Https://github.com/knadh/git-bars )

Die Ausgabe sieht folgendermaßen aus:

$ 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

repostat ist eine verbesserte Gabel des Gitstats-Tools.

Ich bin mir nicht sicher, ob es in irgendeiner Weise mit dem gleichnamigen Projekt auf pypi zusammenhängt. Am besten laden Sie die neueste Version von GitHub herunter und installieren Sie sie in Ihrer Python-Umgebung.

Ab November 2019 konnte ich v1.2.0 unter Windows 7 verwenden, nachdem ich gnuplot in PATH verfügbar gemacht hatte.


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

Erst gestern habe ich meine Docker-Compose-Datei für Git-Analytics hinzugefügt, die mehrere Container aufbaut, um mehrere Git-Repositorys gegeneinander zu analysieren.

Es ist in der Lage, Ihnen Commit-Statistiken über den Autor im Laufe der Zeit sowie verschiedene Diff-Statistiken anzuzeigen.

Sie können den bereitgestellten Winkel-Client und auch Kibana verwenden, um die Statistiken zu visualisieren.

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

Es wird im Laufe der Zeit verbessert.

Angular Client Screenshot

Angular Client Screenshot

Kibana Client Screenshot

Kibana Client Screenshot]]



0

Es werden nicht unbedingt Skripte bereitgestellt, aber dieser Dienst namens Haystack bietet im Wesentlichen Statistiken, Trends und Warnungen basierend auf der Git-Aktivität.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.