Skip to content

Git-commando's uitgelegd

De Git-commando's die je echt gebruikt, gegroepeerd per taak: een repo opzetten, werk vastleggen, branchen en mergen, geschiedenis lezen, delen met een remote, fouten ongedaan maken, werk stashen en bestanden en submodules beheren. Elke rij koppelt het commando aan een realistische aanroep.

Git heeft honderden commando's, maar voor dagelijks werk heb je er maar een paar nodig. Het mentale model is: de working tree is je bestanden, de index (staginggebied) is de volgende commit, en HEAD is de huidige commit. Je staged, je commit, je deelt. Lees vaak de status. Alles hieronder gaat ervan uit dat een vermeld commando al bestaat.

Referentietabel · 55 items
55 of 55 rows
Opzetten en configureren
Stel je naam, e-mail of editor één keer in voor elke repo.git config --global user.name "Ada"
Definieer een snelnaam voor een commando dat je vaak typt.git config --global alias.co checkout
Maak een nieuwe repository in de huidige map.git init
Kopieer een externe repository naar je machine.git clone git@github.com:org/repo.git
Kopieer alleen de nieuwste commits van één branch.git clone --depth 1 --single-branch git@github.com:org/repo.git
Snapshots: de basis
Toon wat er gestaged, gewijzigd en untracked is.git status -sb
Stage wijzigingen zodat ze in de volgende commit belanden.git add src/app.ts
Bekijk wijzigingen per hunk en stage alleen die je goedkeurt.git add -p src/app.ts
Stage wijzigingen van elk gevolgd bestand zonder nieuwe toe te voegen.git add -u
Leg de gestagede wijzigingen vast als nieuwe commit.git commit -m "fix: null check"
Vervang de laatste commit door een gecorrigeerde.git commit --amend -m "fix: handle empty input"
Toon niet-gestagede wijzigingen, of gestagede met --staged.git diff --staged
Toon elke wijziging sinds de laatste commit, al dan niet gestaged.git diff HEAD
Branchen en mergen
Toon, maak of verwijder branches.git branch feature-x
Verwijder een gemergde branch (-D forceert, -a toont elke branch).git branch -d feature-x
Wissel van branch (de moderne vervanger van checkout).git switch feature-x
Maak een nieuwe branch en wissel er in één stap naartoe.git switch -c feature-x
Wissel van branch of herstel bestanden (het oudere, bredere commando).git checkout feature-x
Breng de wijzigingen van een andere branch naar de huidige branch.git merge feature-x
Breek een conflicteerde merge af en zet de branch terug in de oude staat.git merge --abort
Speel de commits van de huidige branch opnieuw af bovenop een andere branch.git rebase main
Squash, herorden of bewerk commits terwijl je ze opnieuw afspeelt.git rebase -i main
Kopieer één commit van een andere branch naar deze.git cherry-pick a1b2c3d
Markeer een commit met een leesbaar label zoals een versie.git tag -a v1.2.0
Check een andere branch uit in een aparte map, tegelijkertijd.git worktree add ../repo-feature feature-x
Geschiedenis bekijken
Loop door de commit-geschiedenis.git log --oneline --graph --decorate
Loop door de geschiedenis van elke branch, niet alleen de huidige.git log --oneline --graph --all
Toon de volledige diff en het bericht van één commit.git show HEAD
Toon wie elke regel van een bestand het laatst wijzigde.git blame src/app.ts
Toon elke commit waar HEAD naartoe wees, inclusief weggegooide.git reflog
Doorzoek de geschiedenis in helften om de brekende commit te vinden.git bisect start
Vat commits samen per auteur.git shortlog -sn
Benoem de huidige commit door te tellen vanaf de dichtstbijzijnde tag.git describe --tags
Samenwerken met remotes
Toon of voeg externe repositories toe.git remote add origin <url>
Toon remotes met hun fetch- en push-URL's.git remote -v
Download externe wijzigingen zonder je branches te wijzigen.git fetch origin
Download externe wijzigingen en verwijder refs naar verwijderde externe branches.git fetch --prune
Download en merge de externe wijzigingen van de huidige branch.git pull --rebase
Stuur lokale commits naar de remote.git push -u origin feature-x
Overschrijf de externe branch, maar alleen als niemand eerder heeft gepusht.git push --force-with-lease origin feature-x
Wijzigingen ongedaan maken
Gooi working-tree-wijzigingen weg, of unstage ze.git restore src/app.ts
Unstage een bestand en behoud de bewerkingen in de working tree.git restore --staged src/app.ts
Verplaats de tip van de huidige branch en optioneel de index.git reset --hard HEAD~1
Voeg een nieuwe commit toe die een eerdere ongedaan maakt (veilig te delen).git revert HEAD
Verwijder untracked bestanden en mappen.git clean -fd
Stashen
Bewaar niet-gecommitte werk en reset de working tree.git stash -u
Toon elke stash die je hebt bewaard.git stash list
Breng een stash opnieuw aan en bewaar hem in de lijst.git stash apply stash@{1}
Verwijder een stash die je niet meer nodig hebt.git stash drop stash@{1}
Breng de recentste stash opnieuw aan en verwijder hem.git stash pop
Bestanden en submodules
Verplaats of hernoem een bestand en stage de wijziging.git mv old.ts src/new.ts
Verwijder een bestand en stage de verwijdering.git rm src/old.ts
Volg een andere repository als map binnen deze.git submodule add git@github.com:org/lib.git lib
Check alleen de genoemde mappen uit van een grote repository.git sparse-checkout set src docs
Exporteer de tree van een commit als tar- of zipbestand.git archive -o repo.zip HEAD