Skip to content

Git-kommandon förklarade

Git-kommandona du faktiskt använder, grupperade efter uppgift: skapa ett repo, ta ögonblicksbilder av arbetet, förgrena och slå samman, läsa historiken, dela med en fjärr, ångra misstag, stash:a arbete samt hantera filer och submoduler. Varje rad parar kommandot med ett realistiskt anrop.

Git har hundratals kommandon, men det dagliga arbetet behöver bara några få. Tankemodellen är: arbetskatalogen är dina filer, indexet (staging-ytan) är nästa commit, och HEAD är den aktuella committen. Du stasar, du committar, du delar. Läs status ofta. Allt nedan förutsätter att ett listat kommando redan finns.

Referenstabell · 55 poster
55 of 55 rows
Installation och konfiguration
Ställer in ditt namn, e-post eller redigerare en gång för alla repon.git config --global user.name "Ada"
Definierar ett kortnamn för ett kommando du skriver ofta.git config --global alias.co checkout
Skapar ett nytt förråd i den aktuella mappen.git init
Kopierar ett fjärrförråd till din maskin.git clone git@github.com:org/repo.git
Kopierar bara de senaste committarna från en enda gren.git clone --depth 1 --single-branch git@github.com:org/repo.git
Grunder för ögonblicksbilder
Visar vad som är stasat, ändrat och ospårat.git status -sb
Stasar ändringar så att de hamnar i nästa commit.git add src/app.ts
Granskar ändringar del för del och stasar bara de du godkänner.git add -p src/app.ts
Stasar ändringar i alla spårade filer utan att lägga till nya.git add -u
Sparar de stasade ändringarna som en ny commit.git commit -m "fix: null check"
Ersätter den senaste committen med en korrigerad version.git commit --amend -m "fix: handle empty input"
Visar ostasade ändringar, eller stasade med --staged.git diff --staged
Visar alla ändringar sedan den senaste committen, stasade eller inte.git diff HEAD
Förgreningar och sammanslagning
Listar, skapar eller tar bort grenar.git branch feature-x
Tar bort en sammanslagen gren (-D tvingar fram det, -a listar alla grenar).git branch -d feature-x
Byter gren (det moderna ersättaren till checkout).git switch feature-x
Skapar en ny gren och byter till den i ett enda steg.git switch -c feature-x
Byter gren eller återställer filer (det äldre, bredare kommandot).git checkout feature-x
För in en annan grens ändringar i den aktuella grenen.git merge feature-x
Avbryter en konfliktfylld sammanslagning och återställer grenens tidigare tillstånd.git merge --abort
Spelar om den aktuella grenens committar ovanpå en annan gren.git rebase main
Squashar, ordnar om eller redigerar committar medan de spelas om.git rebase -i main
Kopierar en enskild commit från en annan gren till denna.git cherry-pick a1b2c3d
Märker en commit med en läsbar etikett, till exempel en version.git tag -a v1.2.0
Checkar ut en annan gren i en separat mapp samtidigt.git worktree add ../repo-feature feature-x
Granska historiken
Går igenom commithistoriken.git log --oneline --graph --decorate
Går igenom historiken från alla grenar, inte bara den aktuella.git log --oneline --graph --all
Visar en commits fullständiga diff och meddelande.git show HEAD
Visar vem som senast ändrade varje rad i en fil.git blame src/app.ts
Visar varje commit HEAD har pekat på, inklusive övergivna.git reflog
Söker i historiken halva för halva för att hitta committen som bröt något.git bisect start
Sammanfattar committar per författare.git shortlog -sn
Namnger den aktuella committen genom att räkna från närmaste tagg.git describe --tags
Fjärrsamarbete
Listar eller lägger till fjärrförråd.git remote add origin <url>
Listar fjärrförråden med deras fetch- och push-URL:er.git remote -v
Hämtar fjärrändringar utan att ändra dina grenar.git fetch origin
Hämtar fjärrändringar och släpper referenser till borttagna fjärrgrenar.git fetch --prune
Hämtar och slår samman den aktuella grenens fjärrändringar.git pull --rebase
Skickar lokala committar till fjärrförrådet.git push -u origin feature-x
Skriver över fjärrgrenen, men bara om ingen annan har pushat först.git push --force-with-lease origin feature-x
Ångra ändringar
Kastar ändringar i arbetskatalogen, eller tar bort dem ur indexet.git restore src/app.ts
Tar bort en fil ur indexet och behåller dess ändringar i arbetskatalogen.git restore --staged src/app.ts
Flyttar den aktuella grenens spets och valfritt även indexet.git reset --hard HEAD~1
Lägger till en ny commit som ångrar en tidigare (trygg att dela).git revert HEAD
Tar bort ospårade filer och mappar.git clean -fd
Stash
Sparar ocommittat arbete och återställer arbetskatalogen.git stash -u
Visar alla stashar du har sparat.git stash list
Tillämpar en stash igen och behåller den lagrad.git stash apply stash@{1}
Tar bort en stash du inte längre behöver.git stash drop stash@{1}
Tillämpar den senaste stachen och slänger den.git stash pop
Filer och submoduler
Flyttar eller byter namn på en fil och stasar ändringen.git mv old.ts src/new.ts
Tar bort en fil och stasar borttagningen.git rm src/old.ts
Spårar ett annat förråd som en mapp inuti detta.git submodule add git@github.com:org/lib.git lib
Checkar ut bara de mappar du namnger från ett stort förråd.git sparse-checkout set src docs
Exporterar en commits träd som en tar- eller zip-fil.git archive -o repo.zip HEAD