Hoppa till innehåll

Commit-meddelanden

Nedan följer några “best practices” för att skriva bra commit-meddelanden. Försök att följa de enklare reglerna redan från början så slipper du lära om längre fram!

Håll det kort — 50 tecken eller färre.

Bra:

git commit -m "Add salt before the password is hashed"

Undvik:

git commit -m "Add a salt (makes it harder to make rainbow table attacks) before passwords are being hashed"

Versal begynnelsebokstav, en välformulerad mening, utan avslutande punkt.

Bra:

git commit -m "Add salt before the password is hashed"
git commit -m "Fix bug where the password is truncated"
git commit -m "Add JSDoc for hashPassword"
git commit -m "Fix linting errors"

Undvik:

git commit -m "add salt before passwords are hashed."

Skriv commit-meddelanden på engelska. Under utbildningen accepteras även svenska, men tänk på att engelska är standardspråket inom IT-branschen — så varför inte träna på vanan redan nu?

Bra:

git commit -m "Add salt before the password is hashed"

Undvik:

git commit -m "Lägger till ett salt innan lösenordet hashas"

Skriv commit-meddelanden i imperativ form — som en instruktion, ungefär som “Öppna boken.” eller “Skriv en anteckning.” Meddelandet ska alltid kunna fylla i följande mening:

Denna commit kommer att…

Bra:

git commit -m "Add salt before the password is hashed"
git commit -m "Fix bug where the password is truncated"
git commit -m "Add JSDoc for hashPassword"
git commit -m "Fix linting errors"

Undvik:

git commit -m "Adds salt before the password is hashed"
git commit -m "Fixing bug where the password is truncated"
git commit -m "Added JSDoc for hashPassword"
git commit -m "Fixed some linting errors"
git commit -m "Adding salt before the password is hashed"

Försök att committa så ofta som möjligt. Med tiden hittar du och ditt team en lagom frekvens, men i början är oftare bättre. Några tumregler att börja med:

  • Committa inte utifrån tid (till exempel var tionde minut).
  • Committa när du slutfört en avgränsad del (t.ex. en fungerande funktion/metod).
  • Har du svårt att beskriva ändringen i ett enda meddelande har du sannolikt ändrat för mycket sedan senaste commit.
  • Har du tre buggar att fixa? Det är sannolikt tre separata commits.

En commit kan ha både en kort sammanfattningsrad och en längre beskrivning som förklarar varför ändringen gjordes. Lägg till en andra -m-flagga för att ge commiten en utökad beskrivning:

git commit -m "Add salt before the password is hashed" -m "Prevents rainbow table attacks against stored password hashes"

Du kan referera till ett issue-nummer i commit-meddelandet för att koppla ihop ändringen med ärendet i GitLab:

git commit -m "Add salt before the password. Refs #12"

När en commit slutför ett issue kan du referera till det med nyckelord som “Fixes” eller “Closes” i commit-meddelandet. GitLab stänger då automatiskt issuet:

git commit -m "Add salt before the password. Closes #12"

Läs mer: Closing issues automatically (GitLab Docs).

Ett bra sätt att lära sig är att titta på hur erfarna utvecklare gör. Bläddra igenom kända open source-projekt på GitHub för att få en känsla för hur commit-meddelanden skrivs i praktiken:

Du kommer att se att en del bryter mot reglerna ovan — bli inte du en av dem.

Fördjupning: Låt AI föreslå ett commit-meddelande

Section titled “Fördjupning: Låt AI föreslå ett commit-meddelande”

En AI-assistent kan formulera om en stagad ändring till ett commit-meddelande som följer reglerna ovan — men bara om den faktiskt kan se vad du har ändrat. Två sätt att uppfylla den förutsättningen:

  • GitHub Copilot i VS Code: öppna Source Control-panelen (Ctrl+Shift+G / Cmd+Shift+G) och klicka på sparkle-ikonen ovanför meddelanderutan. Copilot läser då din stagade diff automatiskt och föreslår ett meddelande — inga extra steg krävs utöver att du redan har Copilot installerat (se AI-assistenter).
  • Chattbaserad assistent (Claude, ChatGPT, med flera): kopiera utskriften från git diff --staged och klistra in den i chatten tillsammans med en instruktion om att skriva ett kort, imperativt commit-meddelande på engelska enligt reglerna ovan.
CCBY