git add
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 WD fill:#1565c0,stroke:#0d47a1,color:#fff
style SA fill:#1565c0,stroke:#0d47a1,color:#fff
Flytta ändringar från working directory till staging area. Du bestämmer exakt vad som ska ingå i nästa commit.
git add filnamn.cs # en specifik filgit add src/ # hela mappengit add . # allt som ändratsgit add -p # interaktivt — välj rad för radVarför inte alltid git add .?
git add . tar allt — inklusive filer du inte menat att committa. En temporär testfil, ett lösenord du glömt i appsettings.json, en halvfärdig klass du inte är klar med.
Vana att bygga: git status → git add <specifika filer> → git status igen → git commit.
Interaktivt läge — git add -p
Det mäktigaste sättet att staga. Istället för att staga hela filer kan du välja vilka rader i en fil som ska ingå i committen:
git add -p Program.cs@@ -12,6 +12,10 @@ public class Program Console.WriteLine("Hej!");+ // TODO: ta bort debug-logg+ Console.WriteLine(rabattkod);+ return 0;Stage this hunk [y,n,q,a,d,s,?]?y = staga det här blocket. n = hoppa över. s = dela upp i ännu mindre bitar.
Bra när du gjort flera orelaterade ändringar i samma fil och vill committa dem separat — en tydlig commit-historik är värd det lilla extra jobbet.
Unstaga en fil
Stagat fel fil? Ingen fara:
git restore --staged Kassan.csFilen går tillbaka till “changed but not staged”. Ingenting i working directory påverkas.