Skip to content

Git-kommandoer forklarede

De Git-kommandoer, du faktisk bruger, grupperet efter opgave: opret et repo, tag snapshots af arbejdet, forgren og flet, læs historikken, del med en fjern, fortryd fejl, stash arbejde samt håndtér filer og submoduler. Hver række parer kommandoen med et realistisk kald.

Git har hundredvis af kommandoer, men det daglige arbejde kræver kun få. Den mentale model er: arbejdsmappen er dine filer, indekset (staging-området) er næste commit, og HEAD er den aktuelle commit. Du stager, du committer, du deler. Læs status ofte. Alt herunder forudsætter, at en nævnt kommando allerede findes.

Referencetabel · 55 poster
55 of 55 rows
Opsætning og konfiguration
Sætter dit navn, din e-mail eller dit redigeringsprogram én gang for alle repos.git config --global user.name "Ada"
Definerer et kortnavn for en kommando, du skriver ofte.git config --global alias.co checkout
Opretter et nyt repository i den aktuelle mappe.git init
Kopierer et fjernrepository til din maskine.git clone git@github.com:org/repo.git
Kopierer kun de nyeste commits fra en enkelt gren.git clone --depth 1 --single-branch git@github.com:org/repo.git
Grundlæggende snapshots
Viser, hvad der er staged, ændret og untracked.git status -sb
Stager ændringer, så de kommer med i næste commit.git add src/app.ts
Gennemgår ændringer stump for stump og stager kun dem, du godkender.git add -p src/app.ts
Stager ændringer i alle trackede filer uden at tilføje nye.git add -u
Gemmer de stagede ændringer som en ny commit.git commit -m "fix: null check"
Erstatter den seneste commit med en rettet version.git commit --amend -m "fix: handle empty input"
Viser unstagede ændringer, eller stagede ændringer med --staged.git diff --staged
Viser alle ændringer siden den seneste commit, stagede eller ej.git diff HEAD
Forgrening og sammenlægning
Lister, opretter eller sletter grene.git branch feature-x
Sletter en sammenlagt gren (-D gennemtvinger det, -a viser alle grene).git branch -d feature-x
Skifter grene (den moderne erstatning for checkout).git switch feature-x
Opretter en ny gren og skifter til den i ét trin.git switch -c feature-x
Skifter grene eller gendanner filer (den ældre, bredere kommando).git checkout feature-x
Fører en anden grens ændringer ind i den aktuelle gren.git merge feature-x
Afbryder en konfliktramt sammenlægning og gendanner grenens tidligere tilstand.git merge --abort
Afspiller den aktuelle grens commits oven på en anden gren.git rebase main
Squasher, omrokerer eller redigerer commits, mens de afspilles.git rebase -i main
Kopierer en enkelt commit fra en anden gren til denne.git cherry-pick a1b2c3d
Mærker en commit med en læsbar etiket, f.eks. en version.git tag -a v1.2.0
Checker en anden gren ud i en separat mappe på samme tid.git worktree add ../repo-feature feature-x
Gennemse historikken
Gennemgår commit-historikken.git log --oneline --graph --decorate
Gennemgår historikken fra alle grene, ikke kun den aktuelle.git log --oneline --graph --all
Viser en commits fulde diff og besked.git show HEAD
Viser, hvem der sidst ændrede hver linje i en fil.git blame src/app.ts
Viser hver commit, HEAD har peget på, inklusive kasserede.git reflog
Gennemsøger historikken halvt for halvt for at finde committen, der ødelagde noget.git bisect start
Opsummerer commits pr. forfatter.git shortlog -sn
Navngiver den aktuelle commit ved at tælle fra det nærmeste tag.git describe --tags
Fjernsamarbejde
Lister eller tilføjer fjernrepositories.git remote add origin <url>
Lister fjernrepositories med deres fetch- og push-URL'er.git remote -v
Downloader fjernændringer uden at ændre dine grene.git fetch origin
Downloader fjernændringer og fjerner referencer til slettede fjerngrene.git fetch --prune
Downloader og fletter den aktuelle grens fjernændringer.git pull --rebase
Sender lokale commits til fjernrepositoryet.git push -u origin feature-x
Overskriver fjerngrenen, men kun hvis ingen andre har pushet først.git push --force-with-lease origin feature-x
Fortryd ændringer
Kasserer ændringer i arbejdsmappen, eller fjerner dem fra indekset.git restore src/app.ts
Fjerner en fil fra indekset og beholder dens redigeringer i arbejdsmappen.git restore --staged src/app.ts
Flytter den aktuelle grens spids og eventuelt også indekset.git reset --hard HEAD~1
Tilføjer en ny commit, der fortryder en tidligere (tryg at dele).git revert HEAD
Sletter untrackede filer og mapper.git clean -fd
Stash
Gemmer ucommittet arbejde og nulstiller arbejdsmappen.git stash -u
Viser alle stashes, du har gemt.git stash list
Anvender en stash igen og beholder den på listen.git stash apply stash@{1}
Sletter en stash, du ikke længere behøver.git stash drop stash@{1}
Anvender den seneste stash og dropper den.git stash pop
Filer og submoduler
Flytter eller omdøber en fil og stager ændringen.git mv old.ts src/new.ts
Sletter en fil og stager sletningen.git rm src/old.ts
Tracker et andet repository som en mappe inde i dette.git submodule add git@github.com:org/lib.git lib
Checker kun de mapper, du nævner, ud fra et stort repository.git sparse-checkout set src docs
Eksporterer en commits træ som en tar- eller zip-fil.git archive -o repo.zip HEAD