Deepseek ArtifactsDeepseek Artifacts
Worktrees-Guide

Claude Code Worktrees: Parallele Sitzungen ohne Konflikte

Ein Befehl gibt jeder Claude-Code-Sitzung eine eigene vollständige Kopie Ihres Repos. Lernen Sie claude --worktree kennen, das .claude/worktrees-Layout, Worktree-Isolation für Subagenten, das Aufräumen beim Beenden — und wo manuelles git worktree add noch gewinnt.

Kurz zusammengefasst

  • claude --worktree (Kurzform -w) startet Ihre Sitzung in einer frischen Kopie des Repos unter .claude/worktrees/<name>, ausgecheckt auf einem Branch namens worktree-<name>.
  • Starten Sie weitere Sitzungen in anderen Terminals, um parallel zu arbeiten — jede Sitzung bearbeitet ihr eigenes Verzeichnis und teilt sich dieselbe Git-History und dasselbe Remote.
  • Auch Subagenten bekommen Worktrees: Fragen Sie in natürlicher Sprache oder setzen Sie isolation: worktree im Frontmatter einer .claude/agents/*.md, um es dauerhaft zu machen.
  • Beim Beenden werden saubere unbenannte Worktrees automatisch entfernt, und laufende Arbeit fragt per Prompt nach Behalten oder Entfernen; Ergebnisse führen Sie mit einem normalen git merge von worktree-<name> zusammen.

Claude Code Worktrees in 7 Minutes

Kanal: Developers Digest7:10

Ansehen

I'm using claude --worktree for everything now

Kanal: Matt Pocock7:57

Ansehen

Worktrees — official documentation

Offizielle Doku: code.claude.com/docs

Ansehen

Jedes Flag, jeder Pfad und jedes Aufräum-Verhalten auf dieser Seite wurde gegen die offizielle Worktrees-Dokumentation geprüft; die Videos oben sind die visuelle und faktische Quelle — inklusive des Behalten/Entfernen-Prompts beim Beenden und der Push-nach-main-Falle.

Screenshots werden ihren Urhebern zugeordnet, mit Deep-Links zu den exakten Zeitstempeln. Keine Kamera-Bilder von Gesichtern.

Claude-Code-Worktrees Schritt für Schritt

Teil 1 — Ihre erste isolierte Sitzung

  1. 1

    Ein Git-Repo mit mindestens einem Commit vorbereiten

    Worktrees verzweigen von existierender History, darum braucht das Worktree-Feature ein echtes Git-Repository. Führen Sie in einem frischen Ordner git init aus, erstellen Sie eine Datei (die Demo führt nur touch index.html aus) und committen Sie. Ohne das hat Claude Code nichts, wovon es verzweigen könnte.

    Terminal running git init in a demo-app folder with Initialized empty Git repository output and touch index.html, the one-commit starting point Claude Code worktrees require
    git init plus touch index.html — ein Commit ist alles, was das Worktree-Feature braucht, bevor claude --worktree läuft.Ansehen bei 1:06
  2. 2

    Wissen, was ein Worktree eigentlich ist

    Ein Git-Worktree ist ein zweites Arbeitsverzeichnis mit eigenen ausgecheckten Dateien und eigenem Branch, das History und Remote des Repositories teilt. Anders als beim Branch-Wechsel wird nichts gestasht: Haupt-Checkout und jeder Worktree bleiben gleichzeitig benutzbar — genau das, was parallele Agenten brauchen.

    Worktrees diagram showing one Git repository fanning out into three folders labeled ../main, ../feature1 and ../feature2, each checked out on its own branch
    Ein Repository, viele Arbeitsordner: ../main, ../feature1 und ../feature2 sitzen gleichzeitig jeweils auf ihrem eigenen Branch.Ansehen bei 0:30
  3. 3

    Claude Code mit --worktree starten

    Führen Sie im Repo claude --worktree aus (oder die Kurzform claude -w). Claude Code erzeugt .claude/worktrees/<name>, generiert einen Namen wie bright-tumbling-rabbit, wenn Sie keinen angeben, und wirft die Sitzung direkt in diese Kopie. In der Desktop-App wählen Sie beim Start einer Sitzung stattdessen die Worktree-Option.

    Claude Code v2.1.50 welcome banner after launching claude --worktree in the demo-app repo, with the session working directory set to .claude/worktrees/bright-tumbling-rabbit
    Der Willkommens-Banner zeigt: Das Arbeitsverzeichnis der Sitzung liegt bereits unter .claude/worktrees — alles Weitere passiert in der Kopie.Ansehen bei 1:22
  4. 4

    Eine zweite Sitzung für die zweite Aufgabe öffnen

    Führen Sie claude --worktree in einem weiteren Terminal erneut aus. Ohne Namen bekommen Sie einen weiteren unabhängigen Worktree; derselbe Name zweimal öffnet denselben wieder. Zwei Agenten können jetzt gleichzeitig am selben Projekt arbeiten, weil jeder nur sein eigenes Verzeichnis sieht.

Teil 2 — Wo Dateien und Befehle leben

  1. 5

    Die vollständige Kopie unter .claude/worktrees ansehen

    Öffnen Sie den Ordner im Dateimanager: Jeder Worktree ist ein vollständiger Checkout mit eigenem index.html, eigener .claude/settings.local.json und eigener git-Datei, während die schwere Objektdatenbank geteilt in der Haupt-.git bleibt. Deshalb ist eine weitere Kopie fast gratis.

    macOS Finder window listing .claude/worktrees with clever-munching-toast and spicy-napping-otter copies behind two browser tabs, each worktree holding its own git folder and index.html
    Zwei Worktrees auf der Platte — clever-munching-toast und spicy-napping-otter — jeweils eine vollständige Projektkopie mit eigenem git-Ordner und index.html.Ansehen bei 1:50
  2. 6

    Bestätigen, dass Befehle im Worktree bleiben

    Wenn die erste Sitzung ihre Seite im Browser öffnet, zeigt der Permission-Prompt, dass der Pfad nach .claude/worktrees/clever-munching-toast zeigt — nicht in Ihren Haupt-Checkout. Claude Code blockiert außerdem, dass Subagenten den Haupt-Checkout direkt bearbeiten, und eine dieser Isolationsprüfungen lässt sich nicht abschalten.

    Claude Code permission prompt for an open command targeting .claude/worktrees/clever-munching-toast/index.html, showing the session working only inside its own worktree copy
    Der Genehmigungsdialog nennt den exakten Worktree-Pfad — der Beweis, dass Sitzung eins nur ihre eigene Kopie des Projekts anfasst.Ansehen bei 1:42
  3. 7

    Worktrees benennen oder aus PRs verzweigen (optional)

    claude --worktree feature-auth erzeugt einen vorhersagbar benannten Worktree, und derselbe Name erneut öffnet ihn wieder, statt ein Duplikat zu erzeugen. Sie können auch eine quotierte PR-Nummer übergeben (claude --worktree "#1234") oder eine GitHub-/GitLab-PR-URL, um einen Worktree dieses Pull Requests unter .claude/worktrees/pr-<number> zu bekommen.

Teil 3 — Parallele Subagenten und Aufräumen

  1. 8

    Parallele Subagenten mit Worktree-Isolation anfordern

    Isolation skaliert über Terminals hinaus. Ein Prompt — „Starte fünf verschiedene Subagenten für fünf Varianten und nutze dabei die git-worktree-Isolation“ — lässt Claude Code Task-Agenten erzeugen, jeden in seinem eigenen isolierten Worktree, alle gleichzeitig am selben Repo ohne Kollisionen.

    Claude Code spawning five Task agents in parallel after a single prompt requesting creative SaaS landing page variations with git worktree isolation
    Fünf Task-Agenten starten parallel — jeder wird als in seinem eigenen isolierten git worktree arbeitend angekündigt.Ansehen bei 2:42
  2. 9

    Zusehen, wie jeder Agent in seiner eigenen Spur läuft

    Die Task-Liste zeigt alle fünf Varianten mit Tool-Nutzung und Token-Zählern, sodass Sie den Fortschritt sehen, ohne fünf Terminals zu öffnen. Subagent-Transkripte bleiben außerhalb des Kontexts des Haupt-Threads, was die steuernde Sitzung klein hält, während die Agenten die Schwerarbeit leisten.

    Claude Code task list with all five SaaS landing page subagents mid-run, each labeled with tool uses and token counts while isolated in its own worktree
    Alle fünf Subagenten mitten im Lauf — Variation 1 schon fertig bei 50,3k Token, während die anderen Dateien in ihren eigenen Worktrees lesen.Ansehen bei 3:42
  3. 10

    Varianten vergleichen, dann den Gewinner mergen

    Wenn die Agenten fertig sind, listet Claude Code jede Variante mit ihrem Pfad unter .claude/worktrees/agent-<id>/ auf, sodass Sie sie nebeneinander im Browser öffnen können. Shippen Sie Ihre Lieblingsvariante mit einem normalen git merge ihres Worktree-Branchs (oder per PR) — Konflikte, falls welche auftreten, lösen sich wie bei jedem anderen Git-Merge.

    Claude Code summary listing five landing page variations with their .claude/worktrees/agent-prefixed index.html paths next to a rendered dark FlowSync preview
    Die Zusammenfassung nennt jede Variante mit ihrem .claude/worktrees-Pfad, daneben ist ein gerendertes Ergebnis geöffnet.Ansehen bei 4:22
  4. 11

    Isolation als wiederverwendbaren Subagenten sichern

    Um Worktree-Isolation dauerhaft zu machen, fragen Sie einfach: „Erstelle einen Front-end-Developer-Subagenten mit dem Haiku-Modell, der Worktree-Isolation nutzt.“ Claude Code recherchiert seine eigene Agent-Dokumentation und schreibt Ihnen eine neue Datei unter .claude/agents/.

    Claude Code accepting a natural-language request to create a front-end developer subagent with Haiku that leverages work tree isolation
    Natürliche Sprache genügt — Claude Code prüft vor dem Schreiben der Datei seine eigene Doku zum Custom-Agent-Format.Ansehen bei 5:42
  5. 12

    Das isolation: worktree im Frontmatter prüfen

    Die erzeugte frontend-dev.md trägt name, description, model: haiku, eine Tools-Whitelist und — die neue Zeile — isolation: worktree. Jeder künftige Lauf dieses Subagenten passiert jetzt in einem temporären Worktree, der automatisch entfernt wird, wenn er ohne Änderungen abschließt.

    Claude Code writing the .claude/agents/frontend-dev.md subagent file with isolation: worktree in its YAML frontmatter so every future run gets its own worktree
    Zeile 8 des Frontmatters — isolation: worktree — gibt jedem Lauf dieses Subagenten seinen eigenen Worktree.Ansehen bei 6:42
  6. 13

    Mergen und Claude aufräumen lassen

    Wenn Sie eine Sitzung beenden, prüft Claude Code den Worktree: Saubere unbenannte Worktrees werden automatisch entfernt, und bei allem mit Arbeit fragt er nach Behalten oder Entfernen — Behalten gibt den Befehl claude --worktree <name> --resume für später aus. Headless -p-Läufe räumen nie auf; die entfernen Sie mit git worktree remove.

Claude-Code-Worktrees vs. manuelles git worktree add

Worktrees gehören seit Jahren zu Git — neu ist, dass Claude Code ihren kompletten Lebenszyklus verwaltet. Die Unterschiede, die zählen:

  • 1Erstellung: Von Hand führen Sie git worktree add ../project-feature -b feature aus, wechseln hinein und starten dann Claude. Mit claude --worktree landet die Sitzung in einem Schritt unter .claude/worktrees/<name> — von Ihnen benannt oder automatisch.
  • 2Basis-Commit: worktree.baseRef steuert den Startpunkt — fresh (Standard) verzweigt vom Remote-Default-Branch, head nimmt Ihre noch nicht gepushten lokalen Commits mit. Das Flag kann keinen bestimmten Branch anzielen; dafür empfiehlt die Doku manuelles git worktree add.
  • 3Dotfiles: Eine .worktreeinclude-Datei im Projektstamm kopiert gitignorierte Dateien wie .env in jeden neuen Worktree. Handgemachte Worktrees bekommen das nicht.
  • 4Aufräumen: Claude Code prüft einen Worktree beim Beenden, entfernt saubere unbenannte automatisch, fragt vor laufender Arbeit nach und fegt verlassene Subagent-Worktrees regelmäßig zusammen. Manuelle Worktrees sind komplett Ihre Verantwortung.
  • 5Schutzgeländer: Isolationsprüfungen hindern Subagenten daran, den Haupt-Checkout zu bearbeiten, und beim Fortsetzen einer Sitzung landen Sie zurück in ihrem Worktree. Plain git worktree add hat kein vergleichbares Sicherheitsnetz.

Darunter ist es trotzdem normales Git. VS Codes Source-Control-Panel listet jeden Worktree mit seinen Änderungen, Merges sind normale git-Merges, und handgemachte wie Claude-erzeugte Worktrees koexistieren im selben Repository — wählen Sie das Werkzeug pro Aufgabe.

Wenn ein Worktree nicht das tut, was er soll

Die meisten Stolperfallen sind Git-Grundlagen, die durchscheinen, keine Bugs im Feature. Diese fünf decken fast jede raue Kante ab:

  • 1Der Push landet auf main. Ein frischer Worktree-Branch trackt den origin-Default-Branch, daher kann ein nacktes git push main treffen. Pushen Sie explizit mit git push origin worktree-<name> und halten Sie main geschützt.
  • 2Dateien oder Tools fehlen. Gitignorierte Dateien (.env, vendor-Ordner) und repo-lokale Filter-Treiber wie LFS wandern nicht in einen neuen Worktree. Listen Sie sie in .worktreeinclude auf — oder führen Sie git lfs pull und Ihre Setup-Befehle im Worktree aus.
  • 3Start schlägt mit einem Trust-Fehler fehl. In einem nicht vertrauenswürdigen Verzeichnis beendet sich claude --worktree mit einem Fehler, der Sie bittet, den Workspace zuerst zu akzeptieren — genehmigen und neu starten. (Nicht-interaktive -p-Läufe überspringen die Prüfung.)
  • 4Zwei Worktrees kollidieren beim Merge. Wenn beide Aufgaben dieselbe Datei anfassen — Routes, eine Sidebar, package.json — lösen Sie beim Mergen Konflikte auf wie in jedem Git-Workflow. Worktrees beseitigen Kollisionen während des Laufs, nicht überschneidende Absichten.
  • 5Übrig gebliebene Worktrees nach Headless-Läufen. -p-Läufe räumen nie hinter sich auf; löschen Sie sie manuell mit git worktree remove (führen Sie vorher git worktree unlock aus, falls einer gesperrt ist).

Einen Worktree unter einer laufenden Sitzung zu löschen ist auch nicht fatal: Beim nächsten Resume fällt er auf das Startverzeichnis zurück und die Bindung wird geleert. Sonst bricht nichts in der Sitzung.

FAQ

Weitere Claude-Code-Guides