Ein Worktree ist ein zweites Arbeitsverzeichnis zu demselben Repository. Beide liegen in verschiedenen Ordnern, zeigen verschiedene Branches und teilen sich dieselbe Geschichte. Englisch work tree heißt Arbeitsbaum.
- Worktree
Ein zweites Arbeitsverzeichnis zu demselben Repository.
Beispiel: „Für den Fehler in der Produktion entstand ein eigener Worktree, der Hauptordner blieb unberührt.“Angelegt mit
git worktree add, aufgeräumt mitgit worktree remove.Abgrenzung zum zweiten Clone: Der hätte eine eigene Kopie der Geschichte. Ein Worktree teilt sie, braucht deshalb kaum Platz und kennt sofort alle Branches und Commits.
Wozu ein Worktree gut ist
Für die Unterbrechung. Du steckst mitten in einer Änderung, und etwas Dringendes kommt dazwischen. Statt alles beiseitezulegen und den Branch zu wechseln, legst du daneben einen zweiten Ordner an und arbeitest dort.
Der zweite Fall ist der Vergleich: zwei Stände gleichzeitig offen, um zu sehen, was sich geändert hat, oder um beide laufen zu lassen.
Was ein Worktree voraussetzt
Dass das Projekt mehrfach lauffähig ist. Jeder Worktree braucht seine eigenen Abhängigkeiten, seine eigene Konfiguration und bei einer Datenbank meist auch eine eigene. Das ist der eigentliche Aufwand, nicht der Git-Teil.
Derselbe Branch lässt sich außerdem nicht in zwei Worktrees gleichzeitig auschecken. Git verhindert das, damit nicht zwei Arbeitsverzeichnisse denselben Zeiger bewegen.
Woran man mit Worktrees scheitert
Am Aufräumen. Ein Worktree, der nicht mehr gebraucht wird, bleibt liegen, belegt Platz und taucht in jeder Übersicht auf. Nach dem Entfernen des Ordners von Hand bleibt zusätzlich die Registrierung zurück, bis sie aufgeräumt wird.
Für den seltenen Gebrauch ist deshalb der Stash der einfachere Weg. Der Worktree lohnt, wenn die Unterbrechung länger dauert als ein paar Minuten.