Übersicht
git shortlog [-n] [-s] [-e] [<revision-range>]
Beschreibung
Der git shortlog-Befehl gruppiert Commits nach Autor und erzeugt prägnante Zusammenfassungen, die für Release-Notes, Mitwirkenden-Listen und schnelle "wer hat was getan"-Übersichten geeignet sind. Standardmäßig gibt er den Namen jedes Autors gefolgt von den Betreffzeilen seiner Commits im gegebenen Bereich aus.
Häufige Modi sind -sn (Zusammenfassung, sortiert nach Anzahl) für "Top-Mitwirkende"-Listen und --no-merges, um Merge-Commits zu ignorieren. Kombiniert mit einem Bereich wie v1.0..v2.0 ist Shortlog der schnellste Weg, Release-Note-Credits zu entwerfen.
Im täglichen Einsatz integriert sich git shortlog eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git shortlog --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.
Zu verstehen, wie git shortlog mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git shortlog hilft, alle drei zu vermeiden.
Häufige Optionen
| Option | Beschreibung |
|---|---|
-s, --summary | Zeigt nur Anzahl pro Autor. |
-n, --numbered | Sortiert Autoren nach Commit-Anzahl. |
-e, --email | Bezieht Autor-E-Mail-Adressen ein. |
--no-merges | Schließt Merge-Commits aus. |
--group=<type> | Gruppiert nach Autor, Committer oder Trailer. |
-w[<width>] | Bricht Betreffzeilen um. |
Beispiele
git shortlog -sn
# Top-Mitwirkende aller Zeiten, mit Zählungen
git shortlog -sne v1.0..v2.0
# Mitwirkende zwischen zwei Releases, mit E-Mails
git shortlog --no-merges HEAD~50..HEAD
# Betreffzeilen nach Autor gruppiert für die letzten 50 Commits
git shortlog --group=trailer:co-authored-by
# Nach Co-authored-by-Trailer gruppieren
Häufige Fehler
Mehrere Commit-Identitäten für dieselbe Person (verschiedene E-Mails, unterschiedliche Schreibweisen) blasen die Mitwirkenden-Anzahl auf. Eine .mailmap-Datei in der Repo-Wurzel kanonisiert sie. Das Vergessen von --no-merges kann viele Merge-Commits Projekt-Maintainern zuschreiben.
Verwandte Befehle
git log, git blame, git describe, git tag