0%

Geschiedenis lezen

Vind wanneer de prijs fout werd

De huidige stock.csv zegt dat een vijgenboom 38.00 kost. De geschiedenis vertelt dat een klant ooit de prijs 3800 zag. De prijs klopt nu weer, maar je wilt een betere vraag beantwoorden: wanneer werd hij voor het eerst fout?

Hier verandert geschiedenis lezen van rondkijken in onderzoek.

Beperk de geschiedenis tot het relevante bestand

git log zonder opties toont alle elf commits. Je weet al hoe je die leest, maar de meeste beantwoorden geen vraag over stock.csv.

Voeg een pad toe na -- om alleen commits op te vragen die dat bestand veranderden:

git log -- stock.csv

De -- is een scheidingsteken. Het vertelt Git dat alles erna een bestandspad is, geen commitidentificatiecode of optie. stock.csv beperkt het resultaat vervolgens tot commits die dat pad veranderden.

Er blijven drie commits over, met de nieuwste eerst:

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

  2. tidy up stock formatting

  3. Add the stock list

Het eerste bericht vertelt wanneer het probleem is opgelost. Het bewijst niet wanneer het begon. Bekijk daarvoor de eerdere kandidaat.

Open de verdachte commit

Het vage bericht tidy up stock formatting hoort bij commit 2cce597. Gebruik de gewone vorm van git show die je al kent:

git show 2cce597

De laatste twee gewijzigde regels geven het antwoord:

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

In de oudere momentopname stond 38.00. In de momentopname van deze commit staat 3800. De prijs werd voor het eerst fout in 2cce597, op 6 maart, bij een bericht dat niets van de schade liet vermoeden.

Controleer het bewijs in plaats van op berichten te gokken

Je vond de wijziging met drie kleine stappen:

  1. Begin met git log om de opbouw van de geschiedenis te begrijpen.

  2. Beperk haar tot het relevante bestand met git log -- stock.csv.

  3. Gebruik git show om de gewijzigde regels van een kandidaat te controleren.

git diff is beschikbaar wanneer de vraag twee toestanden noemt in plaats van één kandidaatcommit. De belangrijkste gewoonte blijft hetzelfde: gebruik berichten om te kiezen waar je kijkt en gebruik daarna de diff als bewijs.

Welk bewijs toont aan dat commit 2cce597 de verkeerde vijgenprijs introduceerde?

Je kunt nu een onbekende repository openen zonder de geschiedenis als een muur van code te zien. Lees de wegwijzers, open één commit, vergelijk toestanden en beperk je zoekgebied totdat de gewijzigde regels je vraag beantwoorden. Het volgende hoofdstuk gebruikt die rustige manier van lezen voordat je iets ongedaan gaat maken.