Was Sie erreichen werden
Sie werden einen Git-Worktree erstellen, um einen zweiten Branch in einem anderen Verzeichnis auszuchecken.
Das Problem
Sie sind tief in feature/checkout, als ein Teamkollege Sie wegen eines dringenden Hotfixes pingt.
Schritt 1: das bestehende Repo untersuchen
cd ~/work/myproject
git worktree list
Schritt 2: einen Worktree fur den Hotfix hinzufugen
git worktree add ../myproject-hotfix main
Schritt 3: einen neuen Branch im Worktree erstellen
cd ../myproject-hotfix
git checkout -b hotfix/cve-2026-1234
git worktree add -b hotfix/cve-2026-1234 ../myproject-hotfix main
Schritt 4: parallel arbeiten
cd ../myproject-hotfix
git push -u origin hotfix/cve-2026-1234
cd ../myproject
Schritt 5: auflisten und inspizieren
git worktree list
Schritt 6: aufraumen
git worktree remove ../myproject-hotfix
git worktree prune
Wie es funktioniert
Das .git des Original-Repos ist der einzige Object-Store.
Anwendungsfalle
Eine Kollegen-PR reviewen
gh pr checkout 123 --branch pr-123
git worktree add ../pr-123 pr-123
cd ../pr-123
npm install
npm test
Zwei Release-Branches vergleichen
git worktree add ../release-1.4 release/1.4
git worktree add ../release-1.5 release/1.5
diff -ru ../release-1.4/src ../release-1.5/src
Lang laufende CI-Builds
git worktree add ./build-linux $SHA
git worktree add ./build-windows $SHA
Backups vor destruktiven Operationen
git worktree add ../backup HEAD
git rebase -i HEAD~20
Limitierungen
- Derselbe Branch kann nicht in zwei Worktrees sein.
- Hooks konnen sich falsch verhalten.
- Submodule konnen seltsam interagieren.
Aliase
[alias]
wt = worktree
wta = worktree add
wtl = worktree list
wtr = worktree remove