git commit
flowchart LR
WD["Working Directory"]
ST["Stash"]
SA["**Staging Area**"]
LR["**Local Repository**"]
RE[("Remote\n(GitHub)")]
WD <-->|stash / pop| ST
WD -->|git add| SA
SA -->|git commit| LR
LR -->|git push| RE
RE -->|git fetch| LR
LR -.->|git merge| WD
style SA fill:#1565c0,stroke:#0d47a1,color:#fff
style LR fill:#1565c0,stroke:#0d47a1,color:#fff
Spara en ögonblicksbild av allt som är stagat. Det här är det permanenta steget — en commit är svår att ta bort utan att det märks.
git commit -m "feat: lägg till rabattkod-validering i kassan"Bra commit-meddelanden
Ett commit-meddelande har två jobb:
- Förklara vad som ändrats (den korta raden)
- Förklara varför om det inte är uppenbart (brödtext, valfri)
# Bragit commit -m "fix: förhindra krasch när kundvagnen är tom"git commit -m "feat: lägg till dark mode-toggle"git commit -m "chore: uppdatera NuGet-paket till .NET 8"
# Dåligagit commit -m "fix"git commit -m "asdfgh"git commit -m "borde funka nu"git commit -m "Karls ändringar"Tumregel: kan du fylla i meningen “Den här committen kommer att ___”? Det är ett bra commit-meddelande.
Conventional Commits
Standard i många team — prefix talar om vad typen av ändring är:
feat: ny funktionfix: buggfixdocs: dokumentationchore: inget som påverkar användarenrefactor: omstrukturering utan nytt beteendetest: lägga till eller ändra testerVerktyg som semantic-release kan automatiskt sätta versionsnummer och generera en CHANGELOG baserat på dessa prefix.
Commit med brödtext
git commit -m "fix: förhindra krasch när kundvagnen är tom
Kassan kastade NullReferenceException om användaren gick direkttill checkout utan att lägga till något. Lade till en null-checkoch omdirigerar till kundvagnen med ett felmeddelande istället.
Closes #87"Tomraden mellan ämnesraden och brödtexten är obligatorisk — utan den behandlar Git alltihop som en lång rad.
Flags att känna till
git commit --amend # ändra senaste committen (meddelande eller innehåll)git commit --amend --no-edit # lägg till fler filer utan att ändra meddelandetObs: --amend skriver om historiken. Kör aldrig --amend på en commit du redan pushat till en delad branch — du skapar problem för alla andra på branchen.