Introduksjon
til
god
git-hygiene

Git commit hygiene

Git er et kraftig verktøy for versjonskontroll som gir deg muligheten til å samarbeide effektivt med andre på programvareprosjekter. En av de viktigste aspektene ved å bruke Git er riktig organisering og strukturering av commits. God Git-hygiene kan hjelpe prosjektet ditt å forbli ryddig og forståelig. I denne artikkelen skal vi se på hvordan du kan oppnå dette ved å fokusere på å løse én oppgave per commit og gi klare beskrivelser.

1. Ett problem, én commit

En av de viktigste prinsippene for god Git-hygiene er å sørge for at hver commit kun løser én ting. Dette betyr at hver commit skal fokusere på å implementere en enkelt funksjon, løse en enkelt feil eller gjøre en enkelt forbedring. Når du deler opp arbeidet på denne måten, blir det mye enklere å forstå hva hver commit gjør, og det blir enklere å spore feil og endringer tilbake til deres opprinnelse.

2. Tydelige beskrivelser

For å gjøre commits mer forståelige for deg selv og dine samarbeidspartnere, er det viktig å gi klare beskrivelser. En god commit-melding skal kort oppsummere hva endringen gjør. For eksempel, istedenfor en vag melding som "Endringer i koden," bør du skrive noe som "Løser feilen med innlasting av brukerprofiler." En god regel å følge er å begynne commit-meldingen med en kort setning som beskriver hovedmålet med endringen, etterfulgt av en mer detaljert beskrivelse.

Se gjerne Conventional Commits for hvordan man kan forbedre sine git commits. Denne standarden introduserer blant annet bruk av tagger som fix, feature, docs, refactor og style som gir et overblikk og en beskrivelse av commiten.

Her er noen eksempler på beskrivelser som kunne trengt litt mer innsats:

"Fixed some stuff" # En slik commit mener jeg man kan finne igjen i mange prosjekter, men den er veldig lite beskrivende.

"Bug fixed" # Hvilken bug? Er det referert til en oppgave?

"Last commit didn't work" 

"Stuff I forgot to commit"

"WIP" #(Work in Progress) - Denne kan jeg finne på å bruke selv, men jeg rydder de bort med en rebase før den merges til hovedbranchen.

"Code cleanup" #Spesifiserer ikke hvilke deler av koden som ble påvirket og hvilke forbedringer som ble gjort

Her er noen eksempler på gode git commit meldinger:

"Fix issue #123: Add validation for user input in login form"  # Fint med referanse til sak og en beskrivelse av hva som er blitt gjort.

"Feature: Implement user profile image upload functionality" # Starter meldingen med feature som beskriver kort at dette er ny funksjonalitet, etterfulgt av en beskrivelse av funksjonaliteten.

"Refactor: Improve performance of database queries" # Dersom commit-meldingen starter med refactor (eller perf for performance) så indikerer det at hensikten med commiten er å restrukturere eller forbedre koden uten å endre oppførsel.

"Docs: Update README with installation instructions" # Oppdatering av dokumentasjon

"Test: Add unit tests for authentication module" # En commit som kun legger til enhetstester.

"Style: Fix indentation issues in main.js" # Starter commit-meldingen med style så er det snakk om endringer i whitespace, linjeskift og lignende.

3. Del opp store oppgaver

Noen ganger kan oppgaver være for store til å løse i én commit. I slike tilfeller er det akseptabelt å dele oppgaven i mindre bestanddeler. For eksempel, hvis du jobber med å lage en ny funksjon i en applikasjon, kan du først opprette en commit for å legge til grunnleggende funksjonalitet og deretter opprette separate commits for hver ekstra funksjonalitet. Dette gjør det enklere å håndtere endringer og gjør det mulig å rulle tilbake mindre deler av arbeidet hvis det oppstår problemer.

Fordeler med God Git-Hygiene

Å følge disse retningslinjene for organisering og strukturering av Git-commits kan gi mange fordeler for prosjektet ditt:

Forbedret forståelse: Klart strukturerte commits gjør det enklere for teammedlemmer å forstå hva som har blitt gjort i prosjektet, selv om de ikke har vært involvert fra begynnelsen.

Lettere feilsøking: Hvis en feil oppstår, kan du raskt finne ut hvilken commit som førte til problemet, og deretter analysere den spesifikke endringen.

Enklere samarbeid: Tydelige beskrivelser og organiserte commits gjør det enklere for andre å samarbeide med deg på prosjektet.

Bedre dokumentasjon: Commits fungerer som en form for dokumentasjon for prosjektets historikk, og gode commit-meldinger gir verdifull kontekst.

Mulighet til å rulle tilbake: Når du har én commit per oppgave, kan du enkelt rulle tilbake spesifikke endringer uten å påvirke andre deler av prosjektet.

Ved code review/pull requests så vil en god git hygiene gjøre det enklere for dine kollegaer å forstå hva det er du forsøker å gjøre. Dette skaper mindre kognitiv belastning.