Git worktrees ile paralel feature çalışması
EnterWorktree, ExitWorktree ve isolation flag'i — branch'lerini yan yana çalıştırma rehberi.
Öğreneceklerin
- Git worktrees'in ne çözdüğünü anla
- Built-in EnterWorktree/ExitWorktree komutlarını kullanmayı öğren
- Subagent'a isolation worktree parametresi geçmenin ne işe yaradığını gör
Aynı repo üzerinde iki feature’ı paralel geliştirmek istiyorsun. Klasik akış: stash → checkout → kod yaz → checkout geri → stash pop. Hatalı, yorucu, dikkat dağıtıcı.
Git worktrees repo’nun farklı branch’lerini diskte ayrı klasörlerde aynı anda canlı tutmana izin verir. Claude Code bunu native destekliyor.
Native komutlar
EnterWorktree { branch: "feat/login" } → /tmp/worktrees/feat-login içine geç
ExitWorktree → main worktree'ye dön + isteğe göre temizle
Açıldığında:
- Yeni bir worktree path’i otomatik kurulur
- Çalışma dizini o klasöre geçer
- Aynı session’da kod yazıp test çalıştırabilirsin
- Geri dönünce ana branch’in dokunulmamış
Hook’lar ve session state ana session’a aittir — sadece dosya işlemleri worktree’de gerçekleşir.
Subagent isolation: “worktree”
Bir subagent’a isolation: "worktree" parametresi geçince:
Agent({
description: "Refactor experiment",
isolation: "worktree",
prompt: "..."
})
- Subagent ayrı worktree’de çalışır
- Dosya değişiklikleri hiç değişiklik yoksa otomatik temizlenir
- Değişiklik varsa path + branch sana döner; istersen merge et, istersen sil
- Ana repo’n hiç dokunulmaz
Bu pattern özellikle “deneysel refactor” veya “iki yaklaşımı karşılaştır” için altın değerinde.
Manuel worktree (CLI)
Built-in komutu yoksa terminal:
git worktree add ../myapp-feat-x feat/x
cd ../myapp-feat-x
# çalış, commit, push
cd ..
git worktree remove myapp-feat-x
Karar matrisi
| Durum | Yaklaşım |
|---|---|
| Tek branch, lineer iş | Worktree gereksiz |
| 2 feature paralel | EnterWorktree + ana session ikisini de yönetebilir |
| ”Önce A bitse B’ye geçsem” | EnterWorktree → ExitWorktree |
| Riskli refactor denemesi | Subagent + isolation: “worktree” |
| Acil hotfix gelir, mevcut iş yarım | EnterWorktree main → fix → exit |
Yaygın tuzaklar
- Aynı branch iki yerde checkout edilemez — her worktree farklı branch ister
- node_modules worktree başına tekrar kurulur (yer kaplar). Workspace cache (pnpm) yardımcı olur
- .env dosyaları worktree’ye kopyalanmaz — symlink veya kopyala
Sıradaki
Auto Mode + Fast Mode — permission akışını ve yanıt hızını nasıl ayarlarsın.