git shortlog

Untersuchen & Vergleichen

Fasst die Historie nach Autor zusammen


Der Befehl 'git shortlog' gruppiert Commits nach Autor: jeder Autor mit Anzahl seiner Commits und deren Betreffzeilen. Er dient für Release Notes und Mitwirkendenlisten. Mit -s werden nur die Zahlen gezeigt, -n sortiert nach Anzahl der Commits, -e ergänzt E-Mails. Im Terminal fasst er den aktuellen Branch zusammen; in Skripten nenne die Revision (git shortlog HEAD).

Syntax

git shortlog [<options>] [<revision-range>] [[--] <path>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (3)

Zeigt nur die Anzahl der Commits pro Autor.

EmpfohlenEine Zeile pro Autor mit der Anzahl der Commits

Beispiel

git shortlog -s

Sortiert Autoren nach Anzahl der Commits statt nach Namen.

EmpfohlenAutoren nach Anzahl der Commits ordnen

Beispiel

git shortlog -sn

Zeigt die E-Mail-Adresse jedes Autors.

Bei BedarfAutoren mit gleichem Namen unterscheiden

Beispiel

git shortlog -sne

Die richtige Option wählen

shortlog oder log

Gruppierung

BefehlGruppiert nach
git log --onelineZeit (neueste zuerst)
git shortlogAutor

Beispiele

Nach Autor

git shortlog

Jeder Autor mit den Betreffzeilen seiner Commits.


Rangliste

git shortlog -sn

Commit-Zahlen, die aktivsten zuerst.


Seit einem Release

git shortlog v1.0..HEAD

Wer hat seit v1.0 was gemacht — Release Notes.

Workflow-Beispiele

1
git shortlog v1.0..v1.1

Änderungen nach Autor gruppiert

2
git shortlog -sn v1.0..v1.1

Den Mitwirkenden danken

Fehlerbehebung

Keine Ausgabe

Ursache: Kein Terminal, also liest shortlog die Standardeingabe

Gib eine Revision an: git shortlog HEAD

Tipps & Stolperfallen

Best Practices

  • ✓Pflege eine .mailmap, damit jede Person nur einmal gezählt wird.

Häufige Fehler

  • ✗In einem Skript leere Ausgabe bekommen: ohne Revision liest shortlog dort von der Standardeingabe — gib HEAD an.
  • ✗Dieselbe Person doppelt zählen, weil sie zwei E-Mails nutzte — lege eine .mailmap-Datei an.

FAQ

A:

Ja, außer du ergänzt --no-merges.