Skip to content

Git-kommandoer forklart

Git-kommandoene du faktisk bruker, gruppert etter jobb: sette opp et repo, ta snapshot av arbeid, branche og merge, lese historikk, dele med en remote, angre feil, stash-e arbeid og håndtere filer og submoduler. Hver rad kombinerer kommandoen med et realistisk kall.

Git har hundrevis av kommandoer, men daglig arbeid trenger bare noen få. Den mentale modellen er: working tree er filene dine, indeksen (staging area) er neste commit, og HEAD er gjeldende commit. Du stager, du committer, du deler. Les status ofte. Alt nedenfor forutsetter at en kommando allerede finnes hvis den er listet.

Referansetabell · 55 oppføringer
55 of 55 rows
Oppsett og konfigurasjon
Angi navn, e-post eller redigeringsprogram én gang for alle repoer.git config --global user.name "Ada"
Definer et kortnavn for en kommando du skriver ofte.git config --global alias.co checkout
Opprett et nytt repository i gjeldende mappe.git init
Kopier et remote repository til maskinen din.git clone git@github.com:org/repo.git
Kopier bare de nyeste commit-ene til én enkelt branch.git clone --depth 1 --single-branch git@github.com:org/repo.git
Grunnleggende snapshots
Vis hva som er staged, endret og usporet.git status -sb
Stage endringer så de kommer med i neste commit.git add src/app.ts
Gå gjennom endringer hunk for hunk og stage bare dem du godtar.git add -p src/app.ts
Stage endringer i alle sporede filer uten å legge til nye filer.git add -u
Registrer de staged endringene som en ny commit.git commit -m "fix: null check"
Erstatt siste commit med en korrigert versjon.git commit --amend -m "fix: handle empty input"
Vis ustagede endringer, eller stagede endringer med --staged.git diff --staged
Vis alle endringer siden siste commit, stagede eller ikke.git diff HEAD
Forgrening og fletting
List ut, opprett eller slett branches.git branch feature-x
Slett en flettet branch (-D tvinger det, -a lister alle branches).git branch -d feature-x
Bytt branch (den moderne erstatteren for checkout).git switch feature-x
Opprett en ny branch og bytt til den i ett steg.git switch -c feature-x
Bytt branch eller gjenopprett filer (den eldre, bredere kommandoen).git checkout feature-x
Hent endringene fra en annen branch inn i gjeldende branch.git merge feature-x
Avbryt en konfliktfylt fletting og tilbakestill branchen til forrige tilstand.git merge --abort
Spill av gjeldende branches commits oppå en annen branch.git rebase main
Slå sammen, omordne eller rediger commits mens de spilles av på nytt.git rebase -i main
Kopier én enkelt commit fra en annen branch til denne.git cherry-pick a1b2c3d
Merk en commit med en lesbar etikett, for eksempel en versjon.git tag -a v1.2.0
Sjekk ut en annen branch i en egen mappe samtidig.git worktree add ../repo-feature feature-x
Gransking av historikk
Gå gjennom commit-historikken.git log --oneline --graph --decorate
Gå gjennom historikken fra alle branches, ikke bare den gjeldende.git log --oneline --graph --all
Vis hele diffen og meldingen til én commit.git show HEAD
Vis hvem som sist endret hver linje i en fil.git blame src/app.ts
Vis alle commits HEAD har pekt på, også kastede.git reflog
Søk historikken halveringsvis for å finne commit-en som ødela noe.git bisect start
Oppsummer commits per forfatter.git shortlog -sn
Navngi gjeldende commit ved å telle fra nærmeste tag.git describe --tags
Remote-samarbeid
List opp eller legg til remote repositories.git remote add origin <url>
List opp remote-er med fetch- og push-URL-ene deres.git remote -v
Last ned remote endringer uten å endre branchene dine.git fetch origin
Last ned remote endringer og fjern refs til slettede remote branches.git fetch --prune
Hent og flett gjeldende branches remote endringer.git pull --rebase
Send lokale commits til remote-en.git push -u origin feature-x
Overskriv remote-branchen, men bare hvis ingen andre pushet først.git push --force-with-lease origin feature-x
Angre endringer
Forkast endringer i working tree, eller unstage dem.git restore src/app.ts
Unstage en fil og behold redigeringene i working tree.git restore --staged src/app.ts
Flytt spissen av gjeldende branch og eventuelt indeksen.git reset --hard HEAD~1
Legg til en ny commit som gjør om en tidligere commit (trygt å dele).git revert HEAD
Slett usporede filer og mapper.git clean -fd
Stashing
Lagre ucommittet arbeid og tilbakestill working tree.git stash -u
Vis alle stash-ene du har lagret.git stash list
Bruk en stash på nytt og behold den i listen.git stash apply stash@{1}
Slett en stash du ikke trenger lenger.git stash drop stash@{1}
Bruk den nyeste stash-en på nytt og fjern den.git stash pop
Filer og submoduler
Flytt eller gi nytt navn til en fil og stage endringen.git mv old.ts src/new.ts
Slett en fil og stage slettingen.git rm src/old.ts
Spor et annet repository som en mappe inne i dette.git submodule add git@github.com:org/lib.git lib
Sjekk ut bare mappene du navngir fra et stort repository.git sparse-checkout set src docs
Eksporter en commits tre som en tar- eller zip-fil.git archive -o repo.zip HEAD