0%

Gute Gewohnheiten für ein echtes Projekt · Übung

Eine Änderung prüfen und committen

Die Ignorierregeln halten lokale Hilfsdateien aus dem Verlauf heraus. Sie entscheiden nicht, wann nützliche Projektarbeit fertig ist. Diese Entscheidung ergibt sich aus einer kurzen Prüfung vor jedem Commit: Sieh nach, was sich geändert hat, nimm die eine zusammengehörige Änderung, die du aufzeichnen möchtest, in die Staging-Area auf, prüfe die vorbereitete Momentaufnahme und gib ihr eine Betreffzeile, mit der andere etwas anfangen können.

Die Wochenendvorhersage des Projekts steht derzeit in forecast.py. Deine nächste Aufgabe ist bewusst klein: Füge in monday.txt einen eigenen Hinweis für Montag hinzu, sonst nichts.

Die Änderung im Arbeitsbaum prüfen

Erstelle monday.txt mit demselben Terminaleditor wie zuvor:

nano -w monday.txt

Gib diese eine Zeile ein:

Monday: bright spells

Speichere mit Ctrl-O, drücke Enter und verlasse den Editor mit Ctrl-X.

Du kennst git status bereits als Übersicht über Pfade mit ausstehenden Änderungen und git diff als genaue Anzeige der noch nicht in die Staging-Area aufgenommenen Änderungen an Pfaden, die Git bereits verfolgt. Verwende beide Befehle vor dem Staging. Hier nennt der Status monday.txt, aber git diff gibt nichts aus, weil die neue Datei noch nicht verfolgt wird und noch nicht zum Arbeitsbaumvergleich von Git gehört:

git status
git diff

Dieser leere Diff bedeutet nicht, dass die Datei leer oder bereit für einen Commit ist. git status zeigt dir, dass der neue Pfad noch eine Entscheidung braucht. Wenn ein weiterer Pfad auftaucht, kümmere dich darum, bevor du fortfährst, statt zusammenhanglose Arbeit in diesen Commit mitzunehmen.

Die Momentaufnahme prüfen, die Git committen wird

git add monday.txt nimmt die aktuelle Version dieser einen Datei in die Staging-Area auf. Sobald eine Änderung dort liegt, vergleicht ein einfaches git diff den Arbeitsbaum mit dem Index und gibt möglicherweise nichts aus. Um die vorbereitete Momentaufnahme zu prüfen, verwende git diff --staged. Die Option --staged weist git diff an, stattdessen den Index mit dem neuesten Commit zu vergleichen.

Nimm die Datei in die Staging-Area auf und prüfe dann die vorbereitete Momentaufnahme und ihren Status:

git add monday.txt
git diff --staged
git status

Der Diff der Staging-Area sollte die neue Datei und ihre Montagszeile zeigen. Das ist die letzte Gelegenheit, mit wenig Aufwand eine versehentliche zusätzliche Zeile, eine zusammenhanglose Änderung oder einen privaten Wert zu entdecken, bevor daraus Verlauf wird.

Einer Änderung eine nützliche Betreffzeile geben

Die erste Zeile einer Commit-Nachricht ist ihre Betreffzeile. Eine nützliche Betreffzeile sagt hinreichend genau, was sich wo geändert hat, damit man diesen Commit von seinen Nachbarn unterscheiden kann. Add the Monday forecast leistet das. Betreffzeilen wie update, changes oder wip zwingen Leser dazu, jede Momentaufnahme zu öffnen, nur um ihren Zweck zu erfahren.

Der Umfang eines Commits ist das zusammengehörige Stück Arbeit, das er enthält. Klein bedeutet keine willkürliche Grenze von einer Datei oder fünf Zeilen. Es bedeutet, dass der Commit einen Grund hat, zu existieren. Die Montagsvorhersage ist ein solcher Grund; sie mit neuen Ignorierregeln oder einer umgeschriebenen README zu mischen, würde mehrere daraus machen.

git commit -m zeichnet die vorbereitete Momentaufnahme auf und verwendet den Text in Anführungszeichen als Betreffzeile. Committe die geprüfte Änderung. Lies dann mit einem einfachen git log die Betreffzeilen deiner beiden Commits und bestätige mit git status, dass nichts mehr offen ist:

git commit -m "Add the Monday forecast"
git log
git status

Die neuesten beiden Betreffzeilen sollten zwei getrennte Entscheidungen beschreiben: Montag hinzufügen und lokale Projektdateien aus Git heraushalten. Der abschließende Status sollte sauber sein, obwohl die ignorierten Beispiel- und erzeugten Dateien auf dem Datenträger bleiben.

Was zeigt git diff --staged vor einem Commit?

Was macht den Montagscommit sinnvoll klein?

Damit ist die Gewohnheit vollständig: Halte lokale Hilfsdateien aus dem Verlauf heraus, prüfe, was der Index gleich aufzeichnen wird, und gib jeder zusammengehörigen Momentaufnahme eine Betreffzeile, die der nächsten Person beim Lesen hilft.