git worktree
Mehrere Branches gleichzeitig in getrennten Ordnern auschecken
Der Befehl 'git worktree' gibt einem Repository mehrere Arbeitsordner. Jeder Ordner hat einen anderen Branch ausgecheckt, mit eigenen Dateien und eigenem Staging-Bereich, während die Historie geteilt wird. Er ist die Alternative zum Stashen, wenn du die Aufgabe wechseln musst: öffne den dringenden Branch in einem anderen Ordner und lass deine laufende Arbeit unberührt. Ein Branch kann nur in einem Ordner gleichzeitig ausgecheckt sein.
Syntax
git worktree add [-b <new-branch>] <path> [<commit-ish>]
git worktree list
git worktree remove <worktree>
git worktree pruneOptionen
Die richtige Option wählen
Aufgaben wechseln
Drei Wege
| Befehl | Deine Änderungen | Ordner |
|---|---|---|
git stash + switch | Beiseitegelegt, dann wiederhergestellt | Einer |
git commit (WIP) + switch | In einem temporären Commit | Einer |
git worktree add | Unberührt | Zwei |
Beispiele
Neuer Branch in einem neuen Ordner
git worktree add ../hotfix -b hotfixOrdner ../hotfix auf einem neuen Branch.
Vorhandener Branch
git worktree add ../review feature/loginEinen Branch prüfen, ohne deinen zu verlassen.
Auflisten
git worktree listJeder Ordner mit seinem Branch.
Entfernen
git worktree remove ../hotfixDen zusätzlichen Ordner löschen.
Workflow-Beispiele
git worktree add ../hotfix -b hotfix mainmain in einem neuen Ordner öffnen
cd ../hotfixDort korrigieren, committen, pushen
git worktree remove ../hotfixDanach aufräumen
Fehlerbehebung
fatal: 'hotfix' is already used by worktree
Ursache: Dieser Branch ist in einem anderen Ordner ausgecheckt
Arbeite in jenem Ordner, oder entferne zuerst den Worktree
Tipps & Stolperfallen
Best Practices
- ✓Lege Worktrees neben den Hauptordner (../name), nicht hinein.
Häufige Fehler
- ✗Einen Worktree-Ordner von Hand löschen — nutze git worktree remove (oder danach prune).
- ✗Denselben Branch in zwei Ordnern auschecken wollen.
FAQ
Ja: ein Repository, eine Historie; nur die ausgecheckten Dateien unterscheiden sich.