Terug naar Woordenboek
intermediateTechnisch
5 min leestijd

Git Worktrees

Simpele Uitleg

Git worktrees laten je meerdere versies van dezelfde codebase tegelijk open hebben in aparte mappen, zonder steeds te switchen. Stel je voor dat je een boek aan het schrijven bent. Normaal heb je één exemplaar op je bureau en moet je steeds bladeren tussen hoofdstukken. Met worktrees heb je meerdere kopieën naast elkaar liggen, elk open op een ander hoofdstuk, en wijzigingen in elk exemplaar worden automatisch gesynchroniseerd. Dit is bijzonder krachtig voor agentic coding: je kunt meerdere Claude Code sessies tegelijk laten werken, elk op een eigen feature.

Technische Definitie

Git worktrees zijn een Git-feature waarmee je meerdere working directories kunt uitchecken vanuit één gedeelde `.git` directory. Elke worktree heeft een eigen HEAD, index (staging area) en werkbestanden, maar deelt de object database, refs en configuratie via `$GIT_COMMON_DIR`. Een linked worktree bevat een `.git` bestand (geen directory) dat verwijst naar de hoofd-repository. Eén `git fetch` update alle worktrees tegelijk. De diskruimte is efficiënter dan klonen: alleen de werkbestanden worden gedupliceerd, niet de hele object database. Anthropics Claude Code documentatie beveelt worktrees officieel aan voor multi-sessie workflows.

Waarom Dit Belangrijk Is

In het tijdperk van agentic coding zijn worktrees een gamechanger. Het traditionele Git-workflow (branch uitchecken, werken, stashen, switchen) is sequentieel — je kunt maar aan één ding tegelijk werken. Met worktrees werk je parallel.

Dit is cruciaal voor AI-gestuurde ontwikkeling. Je kunt vier of vijf Claude Code sessies tegelijk draaien, elk in een eigen worktree, elk werkend aan een andere feature of bugfix. Bedrijf incident.io rapporteerde dat ze significant sneller features shippen door worktrees te combineren met Claude Code.

Maar ook zonder AI zijn worktrees waardevol. Een urgente bugfix terwijl je midden in een feature zit? Open een worktree, fix de bug, commit, en ga terug naar je feature — zonder iets te stashen of context te verliezen.

In de Claude Code Masterclass leer je hoe je worktrees effectief combineert met AI-coding tools voor maximale productiviteit.

Hoe Het Werkt

Worktrees werken door één Git-repository op te splitsen in meerdere fysieke mappen die allemaal dezelfde geschiedenis delen.

Je begint met je hoofdrepository, bijvoorbeeld in `/project/main`. Als je een feature wilt bouwen, maak je een worktree aan: `git worktree add -b feature-login ../feature-login main`. Dit creëert een nieuwe map `/project/feature-login` met de code op een nieuwe branch, terwijl je hoofdmap onaangetast blijft.

Nu kun je in beide mappen tegelijk werken. Open twee terminals, twee IDE-vensters, of twee Claude Code sessies. Elke worktree heeft zijn eigen bestanden en staging area, maar commits die je in de ene maakt zijn zichtbaar vanuit de andere.

Als je klaar bent met de feature, merge je de branch en ruim je de worktree op: `git worktree remove ../feature-login`.

Er zijn wel aandachtspunten. Elke worktree heeft zijn eigen `node_modules` nodig (extra diskruimte). Development servers draaien op dezelfde poorten (conflicten). En je kunt dezelfde branch niet in twee worktrees tegelijk uitchecken. Maar voor parallel werken — vooral met AI-agents — zijn de voordelen enorm.

Use Cases

Parallel AI-agent sessies

Draai vijf Claude Code sessies tegelijk: één refactort de authentication, één bouwt een nieuwe API-endpoint, één schrijft tests, één fixt bugs, en één update de documentatie. Elke sessie werkt geïsoleerd zonder conflicten.

Urgente bugfix zonder context-verlies

Je bent midden in een complexe feature. Er komt een urgente bug binnen. Met worktrees open je een nieuwe map op de main branch, fix de bug, commit en push — zonder je feature-werk te stashen of IDE-state te verliezen.

Code review met context

Review een pull request in een eigen worktree terwijl je eigen werk intact blijft. Je kunt de code draaien, testen en experimenteren zonder je werkbranch te beïnvloeden.

Output vergelijken van AI-agents

Geef dezelfde taak aan meerdere AI-agents in aparte worktrees. Vergelijk de resultaten en kies de beste implementatie. Dit is effectiever dan sequentieel proberen.

Voorbeelden

Basiscommando's

Nieuwe worktree aanmaken: `git worktree add -b feature ../feature main`. Alle worktrees bekijken: `git worktree list`. Worktree verwijderen: `git worktree remove ../feature`. Verlaten referenties opruimen: `git worktree prune`. Zo simpel is het.

incident.io workflow

Bedrijf incident.io beschrijft hun workflow: typ een commando en je hebt direct een Claude Code sessie in een geïsoleerde branch. Ze draaien meerdere sessies parallel en mergen de resultaten. Dit versnelt hun feature-delivery aanzienlijk.

Worktrees vs. klonen

Een 500MB repository vijf keer klonen kost 2,5GB. Vijf worktrees kosten veel minder: de Git object database wordt gedeeld, alleen de werkbestanden worden gedupliceerd. Eén `git fetch` update alle worktrees tegelijk. Het is sneller, lichter en beter gesynchroniseerd.

Veelgemaakte Fouten

"Ik kan dezelfde branch in meerdere worktrees uitchecken"

Dat kan niet — Git staat dit niet toe om conflicten te voorkomen. Elke worktree moet op een unieke branch staan. Maak voor elke worktree een nieuwe branch aan vanaf main of de gewenste basis.

"Worktrees delen hun node_modules"

Elke worktree heeft zijn eigen werkbestanden, inclusief een eigen `node_modules` map. Je moet in elke worktree apart `npm install` draaien. Dit vermeerdert diskgebruik — houd daar rekening mee bij veel worktrees.

"Ik kan de worktree-map gewoon verwijderen"

Verwijder worktrees altijd via `git worktree remove`. Als je de map handmatig verwijdert, blijven er stale referenties achter in de Git-administratie. Draai dan `git worktree prune` om op te ruimen.

Tools Die Dit Gebruiken

Claude CodeCursorGitagentreeCrystalworktree-cli

Veelgestelde Vragen

Hoeveel worktrees kan ik tegelijk hebben?
Er is geen harde limiet vanuit Git. In de praktijk wordt het beperkt door diskruimte (elke worktree heeft eigen node_modules) en poortconflicten (development servers). Vier tot zes worktrees tegelijk is een praktisch maximum voor de meeste projecten.
Werken worktrees met alle Git-hosting platforms?
Ja. Worktrees zijn een puur lokale Git-feature. GitHub, GitLab, Bitbucket — het maakt niet uit. De remote ziet gewoon branches en commits, ongeacht of die vanuit een worktree of de hoofdrepository zijn gemaakt.
Wat als twee worktrees dezelfde bestanden wijzigen?
Dat leidt tot merge-conflicten bij het mergen, net als bij reguliere branches. Het voordeel is dat elke worktree geïsoleerd is — je merkt het pas bij de merge. Goed communiceren welke agent aan welk deel werkt voorkomt dit.
Moet ik worktrees gebruiken met Claude Code?
Niet verplicht, maar sterk aanbevolen voor parallel werken. Anthropics documentatie beveelt worktrees officieel aan. Voor één sessie tegelijk is een reguliere branch voldoende. Zodra je meerdere taken parallel wilt afhandelen, zijn worktrees de standaardaanpak.

Wil je deze term in de praktijk leren toepassen?