Een commit is een opgeslagen momentopname van codewijzigingen, samen met een kort briefje dat uitlegt wat er gedaan is. Elke commit legt één punt in de historie van het project vast, zodat het team altijd weet wat er veranderde, wanneer en door wie. Het is de basiseenheid van vooruitgang in versiebeheer.

Een handige vergelijking zijn de savepoints in een videogame. Elke keer dat je er een bereikt, legt het spel precies vast waar je bent, en als het later misgaat kun je terug naar dat punt in plaats van opnieuw te beginnen. Een commit is dat savepoint voor code, gemaakt met Git als onderdeel van normaal versiebeheer. Rijg die momentopnamen aan elkaar en je krijgt een complete, leesbare tijdlijn van hoe de codebase gegroeid is.

Elke commit draagt een briefje, en goede briefjes doen ertoe. Een heldere notitie als ‘login-fout op mobiel gefikst’ maakt van de historie een bruikbaar logboek, terwijl vage als ‘dingen’ het waardeloos maakt als iemand maanden later een probleem moet naspeuren.

Ook de omvang telt. Een commit die één ding raakt is makkelijk te begrijpen, makkelijk te reviewen en op zichzelf makkelijk terug te draaien. Prop je een hernoeming, een bugfix en een nieuwe functie in één commit, dan ben je dat kwijt. Blijkt de bugfix later verkeerd, dan kun je hem niet meer terugrollen zonder het losstaande werk mee naar buiten te slepen. Dat betaalt zich maanden later echt uit. Als er een bug opduikt en niemand weet wanneer die erin is geslopen, kun je met een opgeruimde historie teruglopen langs de kleine, goed gelabelde commits en precies de commit aanwijzen die hem veroorzaakte, in plaats van te gokken in een wirwar van enorme wijzigingen.

Bij TopDevs houden we op elk project een schone, goed beschreven commit-historie bij, zodat de software van een klant een helder spoor heeft en elke wijziging met vertrouwen te traceren of terug te draaien is.