--- title: Git Worktrees — Parallel Claude Sessions tags: - git - claude-code - workflow - productivity aliases: - git worktrees - parallel claude --- # Git Worktrees — Параллельные сессии Claude Git worktree позволяет иметь несколько рабочих директорий из одного репозитория одновременно, каждая на своей ветке. Это ключевой инструмент для параллельной работы нескольких сессий Claude Code без конфликтов. ## Зачем это нужно Без worktrees две сессии Claude работают на одних файлах → конфликты, перезапись изменений, сломанный dev server. С worktrees каждая сессия получает **изолированную копию файлов** + **общий `.git`**. ## Команды ```bash # Создать worktree на новой ветке git worktree add ../project-feature-x feature-x # Создать worktree на существующей ветке git worktree add ../project-hotfix hotfix/urgent-fix # Список всех активных worktrees git worktree list # Удалить после завершения работы git worktree remove ../project-feature-x # Принудительно удалить (если есть uncommitted changes) git worktree remove --force ../project-feature-x ``` ## Типичный сценарий ``` ~/project/ ← main, сессия 1: текущая фича ~/project-hotfix/ ← hotfix/v2.1, сессия 2: срочный баг ~/project-refactor/ ← refactor/auth, сессия 3: рефакторинг ``` Все три сессии Claude работают независимо, не мешая друг другу. ## Когда предлагать - Репо имеет несколько веток и нужно работать над двумя задачами параллельно - Нужен срочный hotfix, но основная ветка в середине незавершённой фичи - Долгая задача идёт фоном, пока ты работаешь над другим - Claude нужна свобода экспериментировать без риска сломать рабочее состояние ## Claude Code — встроенная поддержка Claude Code имеет встроенный инструмент `EnterWorktree`. Агент с параметром `isolation: "worktree"` автоматически создаёт изолированный worktree, работает в нём, и либо возвращает путь к ветке (если были изменения), либо чистит за собой (если нет). ``` Agent({ isolation: "worktree", ← агент работает в изолированной копии prompt: "..." }) ``` ## Ограничения - Одну ветку нельзя открыть в двух worktrees одновременно - Нельзя `checkout` ветку, которая уже открыта в другом worktree - `git stash` работает глобально — применяется к любому worktree ## Связанные заметки - [[wiki/concepts/claude-code-agents|Claude Code Agents]] - [[wiki/architecture/_index|Architecture Patterns]]