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:
Fix the fig price, which had lost its decimal pointtidy up stock formattingAdd 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:
Begin met
git logom de opbouw van de geschiedenis te begrijpen.Beperk haar tot het relevante bestand met
git log -- stock.csv.Gebruik
git showom 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.