0%

Den Verlauf lesen

Herausfinden, wann der Preis falsch wurde

Laut der aktuellen stock.csv kostet ein Feigenbaum 38.00. Der Verlauf zeigt, dass ein Kunde einmal einen Preis von 3800 sah. Der Preis ist inzwischen korrigiert. Du möchtest aber eine bessere Frage beantworten: Wann wurde er zum ersten Mal falsch?

Hier wird aus dem Betrachten des Verlaufs eine Untersuchung.

Den Verlauf auf die betreffende Datei eingrenzen

Ein einfaches git log zeigt alle elf Commits. Du weißt bereits, wie du sie liest. Die meisten davon können aber keine Frage zu stock.csv beantworten.

Füge nach -- einen Pfad hinzu, um nur nach Commits zu fragen, die diese Datei verändert haben:

git log -- stock.csv

Das -- ist ein Trenner. Es sagt Git, dass alles danach ein Dateipfad ist, keine Commit-Kennung und keine Option. stock.csv begrenzt das Ergebnis dann auf Commits, die diesen Pfad verändert haben.

Drei Commits bleiben übrig, der neueste zuerst:

  1. Fix the fig price, which had lost its decimal point

  2. tidy up stock formatting

  3. Add the stock list

Die erste Nachricht zeigt, wann das Problem behoben wurde. Sie beweist nicht, wann es begann. Dafür untersuchst du den früheren Kandidaten.

Den verdächtigen Commit öffnen

Die vage Nachricht tidy up stock formatting gehört zum Commit 2cce597. Verwende die einfache Form von git show, die du bereits kennst:

git show 2cce597

Die letzten beiden geänderten Zeilen liefern die Antwort:

-fig,38.00,3
+fig,3800,3

In der älteren Momentaufnahme stand 38.00. In der Momentaufnahme dieses Commits steht 3800. Der Preis wurde in 2cce597 am 6. März zum ersten Mal falsch, unter einer Nachricht, die den Schaden nicht erkennen ließ.

Prüfen, statt aus Nachrichten zu raten

Du hast die Änderung mit drei kleinen Schritten gefunden:

  1. Beginne mit git log, um dir einen Überblick über den Verlauf zu verschaffen.

  2. Grenze ihn mit git log -- stock.csv auf die betreffende Datei ein.

  3. Prüfe mit git show die geänderten Zeilen eines infrage kommenden Commits.

git diff steht dir zur Verfügung, sobald die Frage zwei Zustände statt eines einzelnen infrage kommenden Commits nennt. Die entscheidende Gewohnheit bleibt dieselbe: Nutze Nachrichten, um zu entscheiden, wo du nachsiehst. Verwende dann den Diff als Beleg.

Welcher Beleg beweist, dass Commit 2cce597 den falschen Feigenbaumpreis eingeführt hat?

Du kannst jetzt ein unbekanntes Repository betreten, ohne seinen Verlauf als undurchdringliche Wand aus Code zu behandeln. Lies die Wegweiser, öffne einen Commit, vergleiche Zustände und grenze die Suche weiter ein, bis die geänderten Zeilen deine Frage beantworten. Das nächste Kapitel nutzt diese ruhige Art des Lesens, bevor du etwas rückgängig machst.