Pracujesz nad nową funkcją gdy nagle przychodzi pilny bug do naprawienia. Co robisz? Stashujesz zmiany, przełączasz branch, naprawiasz, wracasz? A co gdybyś mógł mieć dwie osobne sesje Claude Code działające równolegle — każda na swoim branchu, z własnymi plikami?
- Problem: jedna sesja, jeden kontekst
- Czym są Git Worktrees?
- Flaga --worktree: szybki start
- Subagenci w worktrees
- Automatyczne czyszczenie
- Praktyczne scenariusze
Problem: jedna sesja, jeden kontekst
Claude Code działa w kontekście bieżącego katalogu. Gdy uruchomisz dwie sesje w tym samym repozytorium, obie widzą te same pliki i ten sam branch. Jeśli jedna sesja edytuje plik, druga widzi zmiany natychmiast. To prowadzi do konfliktów i chaosu.
Potrzebujesz izolacji: osobne pliki, osobne branche, osobne sesje. Standardowe rozwiązanie to sklonowanie repozytorium do nowego katalogu — ale to marnuje miejsce i komplikuje synchronizację.
Git Worktrees to lepsze rozwiązanie. Tworzą osobne katalogi robocze współdzielące historię repozytorium. Każdy worktree ma własne pliki i branch, ale commits, remote i konfiguracja są wspólne.
Czym są Git Worktrees?
Worktree to dodatkowy katalog roboczy powiązany z tym samym repozytorium Git. Zamiast jednego katalogu z jednym branchem, możesz mieć wiele katalogów — każdy na innym branchu.
| Aspekt | Git Clone | Git Worktree |
| Obiekt .git | Pełna kopia | Współdzielony |
| Miejsce na dysku | Cała historia x N | Tylko pliki robocze |
| Synchronizacja | Ręczny fetch/push | Automatyczna |
| Utworzenie | Sekundy do minut | Milisekundy |
Commits zrobione w jednym worktree są natychmiast widoczne w innych — to to samo repozytorium. Nie musisz pushować i pullować między kopiami.
Flaga --worktree: szybki start
Claude Code ma wbudowaną obsługę worktrees. Użyj flagi --worktree (-w) przy starcie:
# Nowy worktree o nazwie feature-auth
claude --worktree feature-auth
# Drugi worktree na bugfix
claude --worktree bugfix-123
# Automatyczna nazwa (np. bright-running-fox)
claude --worktree
Claude Code automatycznie:
- Tworzy katalog .claude/worktrees/nazwa/
- Tworzy nowy branch worktree-nazwa od domyślnego remote
- Uruchamia sesję w tym izolowanym środowisku
Możesz też poprosić Claude podczas sesji: work in a worktree lub start a worktree — utworzy worktree automatycznie.
Subagenci w worktrees
Gdy delegujesz zadanie do subagenta, możesz dać mu własny worktree. Dzięki temu wiele subagentów może pracować równolegle bez konfliktów.
Dwa sposoby:
W konwersacji: Use worktrees for your agents.
W konfiguracji subagenta:
# .claude/agents/reviewer.md
---
name: code-reviewer
isolation: worktree
---
Każdy subagent dostaje własny worktree, który jest automatycznie czyszczony gdy subagent kończy pracę bez zmian.
Automatyczne czyszczenie
Gdy wychodzisz z sesji worktree, Claude Code podejmuje decyzję na podstawie stanu zmian:
Brak zmian: Worktree i branch są usuwane automatycznie. Czysto.
Są zmiany lub commity: Claude pyta czy zachować czy usunąć worktree:
- Zachowaj — katalog i branch pozostają, możesz wrócić później
- Usuń — katalog i branch znikają, wszystkie niezacommitowane zmiany są tracone
Dodaj do .gitignore: Warto dodać .claude/worktrees/ do .gitignore, żeby zawartość worktrees nie pojawiała się jako untracked files w głównym repozytorium.
Praktyczne scenariusze
Scenariusz 1: Pilny bugfix podczas pracy nad feature
# Sesja 1: pracujesz nad nową funkcją
claude --worktree feature-payments
# Przychodzi pilny bug — otwierasz nowy terminal
claude --worktree hotfix-login
# Naprawiasz bug, commitujesz, wracasz do feature
Scenariusz 2: Równoległe code review
Tworzysz subagentów do różnych aspektów review, każdy w swoim worktree:
Review this PR. Use worktrees. Spawn agents for: security, performance, tests, documentation.
Cztery subagenty pracują równolegle, każdy z dostępem do pełnego codebase bez konfliktów.
Scenariusz 3: Eksperymentowanie bez ryzyka
claude --worktree experiment-new-arch
Testujesz radykalne zmiany architektoniczne. Jeśli się nie sprawdzą, wychodzisz i wybierasz usunąć — zero śladów w głównym repo.
Jeśli chcesz dowiedzieć się więcej o organizacji sesji w Claude Code, sprawdź zarządzanie context window. O delegowaniu zadań do subagentów przeczytasz w poście o subagentach.
Wdrożenie Claude Code w twoim zespole