git commit¶
Erinnerung - einfaches Committen mit : git commit -m 'commit-Message'
Hinweis
Die Messages sollten möglichst aussagekräftig sein. Die erste Zeile sollte max. 50 Zeichen lang sein. Man schaue Sie sich doch einmal die Git-Repo Commits an!
Und hier mal ganz extrem:
4 hrs of hacking … 1 commit - Quelle: Chris Lamb, Twitter, Debian Developer¶
Best Practises für das Committen:
Kleinteilig committen: lässt nachträglich die Entstehung von Code besser verstehen. Commits so klein wie möglich und so groß wie nötig.
Niemals Committen ohne Message - also mit leerer Commit-Nachricht
Keine allgemeinen Kurzbezeichner wie Update, Verbesserung oder Fix
Warum wurde eine Änderung committet? (Nicht: Was!)
Anmerkungen zu Fertigkeitsgrad, Verbesserungen, Vorschlägen oder Auswirkungen auf andere Codes
Erste Zeile maximal 50 Zeichen - weiterer Text (Body) dann nach Leerzeile mit max. 72 Zeichen!
Betreff mit Großbuchstaben beginnen - nicht mit Punkt beenden
Befehlsform (Imperativ) anwenden
Link zu Cartoon: ohne Worte
Git Commits (Cartoon)¶
Link zu Blog-Beitrag Chris Beam - How to Write a Git Commit Message (Link zu Blog)
Das wird später auch die Arbeit mit dem Tool git blame
verbessern und effektiver gestalten.
Wenn Sie einen eben gerade gemachten Commit nachbessern wollen -
man hat z.B. Dateien geändert oder hinzugefügt -
oder man möchte die letzte Commit-Message anpassen, dann hilft:
git commit --amend
commit amend
Szenario:
Wir haben Datei(en) geändert und führen eine Commit aus. Dann stellen wir fest, dass wir noch etwas korrigieren und/oder eine Datei vergessen haben.
$ git commit -m 'initial commit - bisschen verfrüht ;-)'
$ git add forgotten_file geaenderte-datei.txt
$ git commit --amend -m 'initial commit'
Also auch bei diesen Commits möglichst mit Option -m '...' committen,
damit man dem VIm entgeht - falls man das möchte ;-)
Wenn man die letzte Commit-Message unverändert lassen möchte:
git commit --amend --no-edit
Das Umschreiben älterer Commits benötigt andere Techniken und wird an dieser Stelle erst einmal weggelassen.
Zusammenfassung
Es ist besonders wichtig jeweils die Unterschiede in den und - und zwischen den - drei Standard-Ebenen von Git zu erkennen: (zur Erinnerung)
Working Tree
Index (staged)
Lokales Repository (
.git)
Und wir sollten uns erinnern: Commits sind Schnappschüsse für unser gesamtes Projekt mit Blobs, Trees und Referenzen.