Ein Commit ist ein festgehaltener Stand des Projekts. Er enthält die vorgemerkten Änderungen, den Zeitpunkt, den Urheber und eine Nachricht, die sagt, warum die Änderung gemacht wurde. Jeder Commit kennt seinen Vorgänger; aus dieser Kette entsteht die Geschichte des Projekts.
- Commit
Ein festgehaltener Stand des Projekts, mit Zeitpunkt, Urheber und Begründung.
Beispiel: „Der Commit von gestern Abend erklärt, warum die Weiterleitung anders gesetzt wurde.“Jeder Commit trägt eine Prüfsumme als Namen, etwa
4cc3a47. Sie wird aus dem Inhalt gebildet, deshalb ist sie weltweit eindeutig und lässt sich nicht nachträglich ändern.Abgrenzung zum Push: Der Commit schreibt in dein lokales Repository. Erst der Push bringt ihn zu den anderen.
Wie groß ein Commit sein sollte
So groß, dass er eine Sache vollständig erledigt, und nicht größer. Ein Commit, der einen Fehler behebt, enthält die Behebung und den Test dazu; er enthält nicht nebenbei eine umbenannte Variable in einer anderen Datei.
Der Maßstab ist die Frage, ob sich dieser eine Commit zurücknehmen ließe, ohne etwas Fremdes mitzunehmen. Lässt er sich das nicht, waren es zwei.
Was in die Commit-Nachricht gehört
Die erste Zeile sagt in wenigen Worten, was geschieht, im Präsens und ohne Punkt am Ende. Darunter steht nach einer Leerzeile, warum es geschieht, falls das nicht offensichtlich ist.
Das Warum ist der eigentliche Wert. Was geändert wurde, steht im Commit selbst und lässt sich jederzeit nachlesen; warum jemand sich so entschieden hat, steht nirgendwo sonst.
Warum ein Commit nicht rückgängig gemacht wird
Weil die Geschichte ein Protokoll ist. Statt einen Commit zu löschen, schreibt man einen neuen, der die Änderung zurücknimmt. Damit bleibt sichtbar, dass es den Versuch gab und dass er zurückgenommen wurde.
Das Umschreiben der Geschichte ist technisch möglich und bleibt Sonderfällen vorbehalten, etwa einem versehentlich eingecheckten Zugangsdatum. Sobald ein Commit veröffentlicht ist, hat ihn jemand anderes möglicherweise schon.