Terug naar het woordenboek
intermediateTechnisch5 min leestijd

Git Worktrees

Dennis ClaassenDoor Dennis Claassen · Laatst bijgewerkt feb 2026

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. Claude Code heeft er een ingebouwde snelkoppeling voor: `claude --worktree feature-auth` maakt de map, de branch en de sessie in één keer aan, en ruimt bij het afsluiten meestal ook weer op (officiële docs).

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. Claude Code bouwt hier native op voort: de vlag `--worktree <naam>` (kort: `-w`) maakt de worktree onder `.claude/worktrees/<naam>/` op een nieuwe branch `worktree-<naam>`, en een `.worktreeinclude`-bestand kopieert gitignored bestanden zoals `.env` automatisch mee. Subagents kunnen met `isolation: worktree` in hun frontmatter ook elk in een eigen worktree draaien (officiële docs, zelf geopend).

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

De snelste weg is de ingebouwde Claude Code-vlag: `claude --worktree feature-login` maakt in één stap een map onder `.claude/worktrees/feature-login/`, een nieuwe branch `worktree-feature-login`, en start daar direct een geïsoleerde sessie. Draai hetzelfde commando met een andere naam in een tweede terminal voor een volledig parallelle sessie. Sluit je een naamloze sessie netjes af zonder openstaande wijzigingen, dan ruimt Claude Code de worktree en branch automatisch weer op; een sessie met een naam of met werk erin vraagt eerst of je hem wilt bewaren (officiële docs).

Je hoeft niet eens met `--worktree` te starten: vraag Claude tijdens een gewone sessie gewoon om "in een worktree te werken" en het maakt er zelf een aan met de EnterWorktree-tool, inclusief overschakelen naar een andere bestaande worktree. Wil je een pull request reviewen zonder je eigen werk te onderbreken, geef dan het nummer mee: `claude --worktree "#1234"` haalt de PR op en zet hem in een eigen worktree klaar (zet het nummer tussen aanhalingstekens, anders ziet je shell de # als commentaar) (officiële docs, zelf geopend 2 oktober 2026).

Onder de motorkap gebruikt dit gewoon Git. Je kunt het ook handmatig: `git worktree add -b feature-login ../feature-login main` maakt een map `/project/feature-login` op een nieuwe branch, terwijl je hoofdmap onaangetast blijft. Dat is de manier als je een worktree buiten je repository wilt plaatsen of op een bestaande branch wilt uitchecken (`git worktree add ../fix branch-naam`, zonder `-b`).

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.

Ben je klaar en heb je handmatig aangemaakt: merge de branch en ruim op met `git worktree remove ../feature-login`. Weigert Git omdat de worktree gelockt is, ontgrendel dan eerst met `git worktree unlock`.

Er zijn wel aandachtspunten. Elke worktree heeft zijn eigen `node_modules` nodig (extra diskruimte, al kopieert een `.worktreeinclude`-bestand tenminste je `.env`-bestanden automatisch mee). 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. Start elke sessie met `claude --worktree <naam>`: Claude Code isoleert automatisch en blokkeert bestandsbewerkingen buiten die worktree, dus 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. Met `claude --worktree "#1234"` haalt Claude Code de PR direct op in een nieuwe worktree, zodat je de code kunt draaien, testen en doorlopen 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

    Met Claude Code: `claude --worktree feature` maakt map, branch en sessie in één keer aan, en ruimt bij een schone afsluiting ook weer op. Handmatig met Git: 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`).
  • 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` (of laat Claude Code het doen bij het afsluiten van een `--worktree`-sessie). Als je de map handmatig verwijdert, blijven er stale referenties achter in de Git-administratie. Draai dan `git worktree prune` om op te ruimen.

  • "Elke nieuwe worktree moet ik zelf van .env-bestanden voorzien"

    Zet je gitignored bestanden (zoals `.env` of `config/secrets.json`) in een `.worktreeinclude`-bestand in je projectroot. Claude Code kopieert ze dan automatisch mee bij elke nieuwe worktree, zonder dat getrackte bestanden gedupliceerd worden.

Tools die dit gebruiken

  • Claude Code
  • Cursor
  • Git
  • agentree
  • Crystal
  • worktree-cli

Veelgestelde vragen

  • Hoe start ik een parallelle Claude Code-sessie met worktrees?
    Typ `claude --worktree <naam>` (kort: `-w`). Claude Code maakt dan zelf een map onder `.claude/worktrees/<naam>/`, een nieuwe branch en start daar direct een geïsoleerde sessie. Draai het commando met een andere naam in een tweede terminal voor nog een parallelle sessie. Je hoeft zelf geen `git worktree add` te draaien.
  • 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.
  • Kan ik Claude Code tijdens een sessie vragen om alsnog een worktree te openen?
    Ja. Je hoeft niet met `--worktree` te starten: vraag Claude gewoon om "in een worktree te werken" en het maakt er zelf een aan met de EnterWorktree-tool. Je kunt vanuit daar ook naar een andere bestaande worktree overschakelen, terwijl de vorige ongewijzigd blijft staan.
  • Kan ik een worktree openen op een bestaande pull request?
    Ja, met `claude --worktree "#1234"` (zet het nummer tussen aanhalingstekens, anders leest je shell de # als commentaar). Claude Code haalt de PR op van je `origin`-remote en zet hem klaar in een eigen worktree, handig om een collega-PR te reviewen zonder je eigen werk te onderbreken.

Wil je deze term in de praktijk leren toepassen?