Anzahl der Git-Commits pro Tag

Lesezeit: 2 Minuten

Benutzer-Avatar
Sanjay Dutt

Ich habe eine Filiale namens development. Jetzt möchte ich wissen, wie viele Commits pro Tag stattgefunden haben.

Ich habe diesen Befehl ausprobiert, aber er zählt alle Commits aus dem Zweig

git shortlog -s -n

Benutzer-Avatar
unterstrich_d

Kurz und bündig:

git log --date=short --pretty=format:%ad | sort | uniq -c

Beispielausgabe:

      1 2017-12-08
      6 2017-12-26
     12 2018-01-01
     13 2018-01-02
     10 2018-01-14
      7 2018-01-17
      5 2018-01-18

Erläuterung:

  • git log ist natürlich Voraussetzung.
  • --date=short setzt unsere date-format zu YYYY-MM-DDwas (A) alles ist, was wir brauchen, und (B) wird anschließend alphabetisch sort in chronologischer Reihenfolge.
  • --pretty=format:%ad erzählt git dass wir nur jedes Commit bekommen wollen aAutor daßen in unserem bevorzugten date-format. Wenn Sie wollten, könnten Sie stattdessen verwenden cd zum cunterlassen dgegessen, aber das wird viel weniger nützlich, sobald Sie cherry-pick, rebaseetc.
  • | sort wird benötigt für uniq, da nur auf benachbarte Duplikate geprüft wird. Und natürlich wollen wir mit ziemlicher Sicherheit, dass die Datteln sowieso am Ende bestellt werden.
  • | uniq -c zählt jeweils die Anzahl benachbarter Duplikate YYYY-MM-DD und stellt diese Zählung dem Datum voran.

Wenn Sie das als tabulatorgetrenntes Datum wünschen, dann zählen Sie es für die Eingabe in eine Grafik-Engine oder ähnliches, dann leiten Sie einfach das obige Ergebnis ein

awk 'BEGIN{OFS = "\t"} {print $2, $1}'

Benutzer-Avatar
alextercete

Versuche dies:

$ git rev-list --count --since=<start-date> --before=<end-date> <ref>

Um beispielsweise die Anzahl der gestern im aktuellen Zweig durchgeführten Commits zu erhalten:

$ git rev-list --count --since=yesterday --before=today HEAD

Es werden auch absolute Daten akzeptiert:

$ git rev-list --count --since=2016-03-02 --before=2016-03-03 HEAD

Ich habe es versucht mit:

git-Protokoll | grep Datum | awk ‘{print ” : “$4” “$3” “$6}’ | uniq-c

Und es funktioniert. Sie erhalten so etwas wie:

   5  : 3 Mar 2016
   4  : 2 Mar 2016
   8  : 1 Mar 2016
   [...]

Ich habe den Befehl gefunden hier.

  • Kombiniere mit grep “dein Datum”. Dies funktioniert nur für einen bestimmten Tag. Die obige Lösung hat Bereiche.

    Benutzer5201742

    3. März 2016 um 13:00 Uhr


  • Dies scheint unnötig verschwenderisch zu sein, da es eine normale, volle Leitung abgibt git log statt nur das Minimum, das es pro Commit benötigt. Du auch nicht sortwas dazu führen könnte uniq schlechte Ergebnisse liefern und/oder Sie anschreien, weil weder Autor (was Sie hier zeigen) noch Commit-Daten in chronologischer Reihenfolge sein müssen.

    – Unterstrich_d

    18. Januar 2018 um 19:35 Uhr

1017360cookie-checkAnzahl der Git-Commits pro Tag

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy