Claude-worktrees opruimen
Aan het einde van deze gids zijn afgehandelde Claude Code worktrees onder .claude/worktrees/ van je werkkopie verwijderd, en is WebStorm weer snel.
Voorwaarden:
- Je werkt op de tapster-backend repo-root.
gitis beschikbaar en je hebt netwerktoegang omorigin/mainte fetchen.- WebStorm heeft
.claude/worktrees/als Excluded folder gemarkeerd (rechtsklik op de map, Mark Directory as, Excluded). Anders blijft WebStorm elke nieuwe worktree mee-indexeren.
1. Dry-run draaien
Vanuit de repo-root:
scripts/prune-claude-worktrees.sh
Het script verwijdert standaard niets, het toont alleen wat het zou doen:
WOULD REMOVE (merged-or-empty): /.../.claude/worktrees/adoring-nobel-ee4fb9 [claude/adoring-nobel-ee4fb9]
...
Dry-run summary: would remove 12 worktree(s), keep 0, skip 0
Run with --apply to actually delete.
Verklaring per regel:
WOULD REMOVE (merged-or-empty): branch tip is een ancestor vanorigin/main, dus ofwel al gemerged of nooit gedivergeerd. Veilig.WOULD REMOVE (stale-Nd): branch is gedivergeerd, maar de laatste commit is ouder dan de drempel (zie stap 3).KEEP: actieve worktree, blijft staan.SKIP (dirty): er staan uncommitted wijzigingen, het script raakt deze niet aan.SKIP (current branch): de branch waar je nu zelf op staat.
2. Echt opruimen
Als de dry-run er goed uitziet:
scripts/prune-claude-worktrees.sh --apply
Het script:
- Verwijdert per worktree de checkout met
git worktree remove --force. - Verwijdert de bijbehorende
claude/*branch metgit branch -D. - Draait
git worktree prunevoor administratie. - Ruimt lege parent-mappen onder
.claude/worktrees/op.
3. Drempel voor stale worktrees aanpassen
Default is 7 dagen. Voor een ruimere of strakkere drempel:
scripts/prune-claude-worktrees.sh --max-age 14 # dry-run, 14 dagen
scripts/prune-claude-worktrees.sh --max-age 14 --apply # toepassen
4. Dangling branches meenemen
Sommige claude/* branches hebben geen worktree meer (eerder opgeruimde sessies, half-werkende runs). Met --prune-branches ruimt het script die mee op, met dezelfde criteria (ancestor van main of ouder dan --max-age dagen):
scripts/prune-claude-worktrees.sh --prune-branches # dry-run
scripts/prune-claude-worktrees.sh --prune-branches --apply # toepassen
De output bevat dan een extra blok met WOULD REMOVE branch of REMOVING branch regels.
5. Wanneer draaien
Niet automatisch. Draai het script handmatig wanneer:
- WebStorm langzaam wordt of veel CPU verbruikt aan indexering.
git worktree listmeer dan een handvol regels toont.- Een Claude-sessie of subagent halverwege is afgebroken en je een orphan worktree ziet.
Cron op een dev-machine wordt afgeraden, je wilt niet dat een worktree die je net even liet liggen ‘s nachts wordt verwijderd.
Wat te doen bij fouten
| Symptoom | Oorzaak | Actie |
|---|---|---|
warn: could not fetch origin/main |
Geen netwerk of git auth-issue | Het script gebruikt de lokale origin/main. Doe handmatig git fetch origin main als je twijfelt over de status |
SKIP (dirty) op een worktree die je niet meer nodig hebt |
Er staan uncommitted wijzigingen in | Open de worktree, beoordeel of de wijzigingen weg mogen, gebruik git -C <pad> stash of commit, draai het script opnieuw |
Branch staat in KEEP terwijl je hem wel wilt verwijderen |
Diverged en jonger dan --max-age |
Verlaag de drempel met --max-age 0 (alles wat divergeert blijft staan), of verwijder de branch handmatig met git branch -D <naam> |
error: refusing to remove the current working tree |
Je staat zelf in een worktree onder .claude/worktrees/ |
Wissel eerst naar de hoofd-checkout (cd ..) en draai het script opnieuw |
Verwante documentatie
Het script staat in scripts/prune-claude-worktrees.sh. Run met -h voor de help-tekst.