Kapitel 3
Den Verlauf lesen
Die Geschichte eines Repositorys lesen
Du hast ein Repository geöffnet, das du nicht selbst angelegt hast. Es gehört Fern & Fig, einem kleinen Pflanzengeschäft, und enthält bereits elf Commits. Bevor du etwas änderst, möchtest du wissen, was hier passiert ist.
Dafür ist ein Verlauf da. Du musst nicht jede Zeile seiner Ausgabe sofort verstehen. Du brauchst einen verlässlichen Ausgangspunkt.
Was ein Commit enthält
Du kennst einen Commit bereits als Momentaufnahme mit Begründung. Hier kommt die etwas vollständigere Beschreibung, die du brauchst, um einen vorhandenen Verlauf zu lesen.
Ein Commit zeichnet Folgendes auf:
eine Momentaufnahme jeder verfolgten Datei im Projekt;
eine Nachricht, einen Autor und ein Datum;
eine Verknüpfung mit dem früheren Verlauf. Ein gewöhnlicher Commit hat einen Vorgänger, der erste Commit dagegen keinen. In Kapitel 6 präzisieren wir diese Regel für das Zusammenführen von Entwicklungszweigen.
Diese letzte Verknüpfung macht aus einzelnen Momentaufnahmen eine Geschichte. Git kann den Verknüpfungen vom neuesten Commit rückwärts bis zum Anfang folgen.
Ein Commit speichert keine fertige Liste geänderter Zeilen. Wenn Git eine Änderung zeigt, berechnet es den Unterschied zwischen der Momentaufnahme dieses Commits und einer anderen. Wenn du diese beiden Ideen auseinanderhältst, lassen sich die nächsten Lektionen viel leichter lesen.
Den Verlauf abfragen
git log liest die Commits, die von deinem aktuellen Stand aus erreichbar sind, und gibt sie mit dem neuesten zuerst aus. Ohne Optionen zeigt es die gewöhnliche menschenlesbare Form: die Commit-Kennung, den Autor, das Datum und die Nachricht.
Auf einem normalen Computer öffnet sich eine lange Git-Ausgabe oft in einem Pager, einer bildschirmfüllenden Ansicht, in der du scrollen kannst. Mit q verlässt du sie. Im Terminal dieses Kurses ist der Pager bewusst deaktiviert. Dieselbe Ausgabe läuft deshalb einfach durch das Terminal.
Führe jetzt den einfachen Befehl aus:
git log
Beginne oben. Die neueste Nachricht lautet Document where stock lives. Darunter steht eine längere Nachricht über die Korrektur eines fehlenden Dezimalpunkts. Weiter unten findest du kurze Nachrichten wie spacing und wip, die dir kaum helfen.
Diese Mischung ist normal. Ein Verlauf wird im Laufe der Zeit von Menschen geschrieben, und nicht jede Nachricht ist gut. Du sollst nicht alle elf Commits auf einen Blick entschlüsseln. Stelle zuerst eine kleine Frage: Was ist am neuesten, wer hat es erstellt, und was ist laut Nachricht passiert?
Die lange Kennung
Jeder Eintrag beginnt mit commit und einer langen Zeichenfolge wie ed9fce3016100405187bbe307b1731f2bb91ba5b. Das ist die Kennung des Commits. Sie bezeichnet genau einen Commit in diesem Repository.
Du musst sie selten vollständig eingeben. Ein kurzer Anfang wie ed9fce3 genügt, wenn er im Repository eindeutig ist. Git sagt dir, wenn der angegebene Teil mehr als einen Commit bezeichnen könnte.
Die Kennung ist eine Bezeichnung, keine Bewertung und nichts zum Auswendiglernen. Kopiere sie, wenn du nach diesem Commit fragen möchtest, und überlasse Git das Merken.
Welche Nachricht steht ganz oben im vorbereiteten Verlauf von Fern & Fig?
Du hast den nützlichen ersten Durchgang geschafft: das Neueste oben, Nachrichten als Wegweiser und Kennungen als Bezeichnungen. Als Nächstes öffnest du einen Commit und siehst dir an, wie sich seine Momentaufnahme von der vorherigen unterscheidet.