0%

Geschiedenis lezen

Open één commit

Een geschiedenis geeft je wegwijzers. Een bericht in de geschiedenis van Fern & Fig zegt make the heading green. Dat is nuttig, maar het blijft een bewering. Je wilt zien wat de commit werkelijk veranderde.

Toon de commit

git show opent één commit. Geef een identificatiecode op en je krijgt de auteur, datum en het bericht van de commit, gevolgd door het verschil tussen die momentopname en die van de oudercommit.

De korte identificatiecode 40d8e6e duidt de commit aan waarvan het bericht zegt dat de kop groen werd. Voer uit:

git show 40d8e6e

Het eerste deel zou je bekend moeten voorkomen van git log. Het vertelt welke commit je hebt geopend, wie hem maakte, wanneer en welke reden diegene opgaf.

Het tweede deel begint met diff --git. Dit is het bewijs.

Lees de gewijzigde regels, niet elk symbool

Een Git-diff bevat labels die ingewikkeld ogen, omdat ze voor elk soort tekstbestand moeten werken. Bij een eerste lezing zijn vier delen van belang:

  • --- a/style.css duidt de oudere versie van het bestand aan.

  • +++ b/style.css duidt de nieuwere versie aan.

  • De regel die met @@ begint, vertelt waar dit kleine gewijzigde deel thuishoort. Zo’n deel heet een hunk. Je hoeft de getallen nog niet te ontcijferen.

  • Regels die met - beginnen, stonden in de oudere momentopname maar niet in de nieuwere. Regels die met + beginnen, staan in de nieuwere momentopname maar niet in de oudere.

Regels met een spatie vooraan zijn ongewijzigde context. Git toont ze om te laten zien waar de bewerking staat. In deze commit is de bestaande body-regel context en is de nieuwe h1-regel de enige toegevoegde regel:

 body { font-family: system-ui; margin: 2rem; }
+h1 { color: #2e5b3e; }

De + is een markering van Git. Het is geen teken dat in style.css is opgeslagen.

Vergelijk het bericht met het bewijs

Het bericht zei dat de kop groen werd. De toegevoegde CSS-regel selecteert h1, de hoofdkop van de pagina, en geeft die de kleur #2e5b3e. Het bewijs komt overeen met het bericht.

Die kleine controle is de gewoonte waarvoor git show dient. Vraag niet alleen: “Wat zegt het bericht?” Vraag ook: “Ondersteunen de gewijzigde regels dat?”

Wat betekent de regel die met + begint in de diff van git show 40d8e6e?

git show beantwoordt een gerichte vraag over één commit. Soms is je vraag breder: hoe verschilde het project tussen twee willekeurige punten? Dan neemt git diff het over.