Übersicht
git notes add [-m <msg>] [<commit>]
git notes show [<commit>]
git notes append [-m <msg>] [<commit>]
git notes remove [<commit>]
Beschreibung
Der git notes-Befehl hängt zusätzliche Metadaten an Commits an, ohne sie umzuschreiben. Notes werden in ihrem eigenen Ref-Namespace gespeichert (standardmäßig refs/notes/commits) und neben Commits in git log angezeigt. Anwendungsfälle sind Code-Review-Kommentare, Build-Status, Ticket-Links oder nachträglich hinzugefügte Sign-Offs.
Notes werden standardmäßig nicht gepusht — Sie müssen explizit git push origin refs/notes/* ausführen. Verschiedene Teams verwenden verschiedene Namespaces; CI-Systeme schreiben oft nach refs/notes/ci, während Reviewer refs/notes/review verwenden.
Im täglichen Einsatz integriert sich git notes 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 notes --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 notes 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 notes hilft, alle drei zu vermeiden.
Häufige Optionen
| Unterbefehl | Beschreibung |
|---|---|
add | Hängt eine neue Notiz an einen Commit an. |
append | Fügt zu einer bestehenden Notiz hinzu. |
edit | Öffnet einen Editor auf der Notiz. |
show | Gibt die Notiz aus. |
remove | Löscht die Notiz. |
list | Listet Commits mit Notizen auf. |
--ref <ref> | Verwendet einen anderen Notes-Namespace. |
Beispiele
git notes add -m "Reviewed by Alice" abc123
# Eine Review-Notiz anhängen
git log --show-notes
# Notes inline mit dem Log anzeigen
git notes --ref=ci add -m "Build #42 passed" HEAD
# Einen eigenen Namespace verwenden
git push origin 'refs/notes/*'
# Notes auf den Remote veröffentlichen
Häufige Fehler
Vergessen, das Notes-Ref zu pushen und zu fetchen, macht Notes für Mitwirkende unsichtbar. Konfigurieren Sie notes.displayRef = refs/notes/*, sodass alle Namespaces in git log erscheinen. Notes überleben keine Historien-Umschreibungen, es sei denn, sie werden explizit migriert.
Verwandte Befehle
git log, git commit, git push, git fetch