Git Worktrees w Claude Code: Jak pracować nad wieloma featureami równolegle

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?

  1. Problem: jedna sesja, jeden kontekst
  2. Czym są Git Worktrees?
  3. Flaga --worktree: szybki start
  4. Subagenci w worktrees
  5. Automatyczne czyszczenie
  6. 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.

Worktree vs Clone
AspektGit CloneGit Worktree
Obiekt .gitPełna kopiaWspółdzielony
Miejsce na dyskuCała historia x NTylko pliki robocze
SynchronizacjaRęczny fetch/pushAutomatyczna
UtworzenieSekundy do minutMilisekundy

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:

  1. Tworzy katalog .claude/worktrees/nazwa/
  2. Tworzy nowy branch worktree-nazwa od domyślnego remote
  3. 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