Die 50/72 Rule ist eine Konvention für Git-Commit-Nachrichten, von Tim Pope geprägt und verbreitet, von Chris Beams als „Seven Rules“ kodifiziert. Sie verlangt eine Betreffzeile im Imperativ mit etwa 50 Zeichen, eine Leerzeile und einen bei 72 Zeichen umbrochenen Textkörper, der erklärt, warum sich etwas geändert hat, nicht wie.
50/72 Rule
Details
- Full Name
-
50/72 Rule for Git Commit Messages
- Auch bekannt als
-
Git Commit Message Convention, Seven Rules of Git Commits
Kernkonzepte:
- 50-Zeichen-Betreffzeile
-
Die Betreffzeile sollte etwa 50 Zeichen lang sein — ein weiches Limit, das den Autor zwingt, die Änderung präzise zu benennen. GitHub kürzt nach 72 Zeichen ab;
git log --onelinenoch früher. 50 Zeichen als Ziel, 72 als harte Obergrenze. - Imperativform
-
Schreibe die Betreffzeile im Imperativ: „Fix bug" statt „Fixed bug" oder „Fixes bug." Das spiegelt die eigene Konvention von Git wider —
git mergeerzeugt „Merge branch…",git reverterzeugt „Revert…". - Leerzeile als Trenner
-
Trenne die Betreffzeile vom Textkörper durch eine Leerzeile. Git-Werkzeuge —
rebase,format-patch,log --oneline— verlassen sich auf diesen Trenner, um Zusammenfassung und Erklärung zu unterscheiden. Ohne die Leerzeile geraten diese Werkzeuge durcheinander. - Zeilenumbruch bei 72 Zeichen
-
Brich den Textkörper bei 72 Zeichen um. Mit Gits 4-Leerzeichen-Einrückung passt eine 72-Zeichen-Zeile in ein 80-Spalten-Terminal. Dasselbe Limit macht die Nachricht als E-Mail-Patch via
git format-patchverwendbar. - Textkörper erklärt das Warum
-
Der Code-Diff zeigt bereits, was sich geändert hat. Der Commit-Text erklärt die Entscheidung — Kontext, Abwägungen, Hintergrund. Das Wie gehört in Quellkommentare; das Warum gehört in den Commit.
- Schlüsselvertreter
-
Tim Pope ("A Note About Git Commit Messages", tbaggery.com, 2008 — hat die Regel geprägt und verbreitet); Chris Beams ("How to Write a Git Commit Message", cbea.ms — hat sie als „Seven Rules" kodifiziert)
Wann zu verwenden:
-
Beim Schreiben von Commit-Nachrichten in jedem Git-Repository
-
Bei der Konfiguration von
commit.templateoder Linting-Hooks (commitlint,.gitmessage) -
Im Code-Review: Prüfen, ob eine Commit-Nachricht Reviewern und zukünftigen
git bisect-Nutzern genug Kontext bietet -
Beim Anweisen eines LLM zur Erzeugung einer Commit-Nachricht — die Nennung „50/72 Rule" aktiviert die vollständige Konvention, ohne jede Einzelregel wiederholen zu müssen
Verwandte Anker:
-
Plain English (Strunk & White) — dieselbe Sprachökonomie, angewandt auf Prosa
-
BLUF — das Wichtigste zuerst (Betreffzeile), Details im Textkörper
-
Inverted Pyramid Style — Wichtigstes zuerst, unterstützende Details folgen
Aktueller Status:
-
Der Artikel "How to Write a Git Commit Message" von Chris Beams ist die am häufigsten verlinkte Ausarbeitung von Tim Popes Originalpost; er ergänzt Großschreibung, kein abschließender Punkt und die formale Regel „Warum erklären, nicht Wie"
-
Conventional Commits fügt ein
type(scope):-Präfix hinzu, das direkt in das 50-Zeichen-Budget eingreift; Thirstybear (2025) argumentiert, dass diese Metadaten in Commit-Trailer gehören, nicht in die Betreffzeile, und verteidigt das 50-Zeichen-Limit mit typografischen Gründen — unter Verweis auf die Empfehlung des Schweizer Designers Emil Ruder von 50–60 Zeichen pro Zeile als Lesbarkeitsoptimum