
Git worktree – die unterschätzte Superpower von Git
Git worktrees gibt es schon seit 2015 (Git 2.5). Trotzdem nutzen sie in Deutschland nach Schätzungen nur etwa 5–10 % der Entwickler – erstaunlich wenig, denn die Funktion spart nicht nur enorm Zeit, sondern macht das Arbeiten mit mehreren Branches deutlich übersichtlicher und sicherer.
Kurze Vorwarnung vorab:
Wenn du Git hauptsächlich für kleine Hobby-Projekte nutzt oder immer noch im „2010er-Stil“ arbeitest (checkout -> commit -> push -> fertig), brauchst du worktrees wahrscheinlich nicht.
Aber wenn du professionell in Teams arbeitest, viele Branches und Merge Requests hast, lange Features entwickelst oder regelmäßig Code-Reviews machst - dann wird git worktree dein Leben spürbar besser machen.
Welches Problem löst git worktree wirklich?
Der Klassiker: Du arbeitest konzentriert an einem Feature. Plötzlich kommt ein dringender Merge-Request-Review oder du musst etwas in einem anderen Branch nachschauen. Was passiert?
- Du stasht deine aktuelle Arbeit (hoffentlich ohne etwas zu vergessen)
- Wechselst zum anderen Branch
- Schaust dir den Code an
- Kommst zurück, poppst den Stash
- Hoffst, dass nichts kaputtgegangen ist
Das ist nervig, fehleranfällig und vor allem: Du kannst nicht beide Zustände gleichzeitig sehen, vergleichen, ausprobieren oder nebeneinander debuggen.
Git worktree löst genau das: Es checkt einen beliebigen Branch (oder Commit) in einen separaten Ordner aus - ohne deine aktuelle Arbeit zu stören. Du hast plötzlich mehrere vollwertige Arbeitskopien desselben Repos parallel offen, die sich nur den .git-Ordner teilen.
Zwei praxiserprobte Organisations-Methoden
Damit du sofort loslegen kannst, ohne Chaos zu erzeugen, hier zwei bewährte Strukturen:
Methode 1: „Base + Geschwister-Worktrees“ (mein persönlicher Favorit für die meisten Projekte)
1USES-DEV/2├── base/ # dein Haupt-Checkout (meist main oder develop)3├── worktree-payments/ # Feature-Branch „payments“4├── worktree-ui-redesign/5├── worktree-bug-123/6└── docs/ # oder andere projektbezogene OrdnerVorteil: Alles gehört optisch zusammen, Navigation bleibt einfach, .gitignore mit ../worktree-* schützt vor Versehen.
Methode 2: Bare-Clone + reine Quell-Ordner (sehr sauber für Power-User)
1USES-DEV/2├── .bare/ # nur die Git-Daten (git clone --bare)3├── base/ # Haupt-Branch4├── payments/5├── ui-redesign/6└── bug-123/Setup:
1mkdir USES-DEV2cd USES-DEV3git clone --bare [email protected]:deinname/uses-dev.git .bare4echo "gitdir: .bare" > .git # Trick, damit normale Git-Befehle funktionieren5git worktree add base main6git worktree add payments feature/paymentsVorteil: Sehr saubere Trennung (kein versteckter .git in den Arbeitsordnern), Fetch/Pull in einem Worktree aktualisiert alle sofort.
Fazit
Git worktree ist keine nette Spielerei – es ist eine echte Produktivitätswaffe, sobald du mit mehr als einem oder zwei Branches gleichzeitig jonglierst. Besonders in Kombination mit modernen Tools wie Claude Code (das automatisch Worktrees für Agenten erstellt) entfaltet es seine volle Kraft.
Probier eine der beiden Strukturen aus – in 10 Minuten bist du drin. Und wenn du danach nochmal stasht, um einen Branch zu wechseln… dann weißt du, dass du etwas verpasst hast.
Hast du schon Erfahrungen mit worktrees? Schreib mir gerne in die Kommentare!