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

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)

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.