- Resolve hoarder-sync/data.json conflict (keep local timestamp) - Merge unique content from iCloud duplicate 2026-05-03 2.md into original - Delete iCloud duplicates: 2026-05-03 2.md, Pending Commands 2.md, network-topology 2.md - Add 2026-05-05 daily log and credentials note - Add git-worktrees wiki articles and concepts index entry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
| title | tags | aliases | ||||||
|---|---|---|---|---|---|---|---|---|
| Git Worktrees — Parallel Claude Sessions |
|
|
Git Worktrees — Параллельные сессии Claude
Git worktree позволяет иметь несколько рабочих директорий из одного репозитория одновременно, каждая на своей ветке. Это ключевой инструмент для параллельной работы нескольких сессий Claude Code без конфликтов.
Зачем это нужно
Без worktrees две сессии Claude работают на одних файлах → конфликты, перезапись изменений, сломанный dev server.
С worktrees каждая сессия получает изолированную копию файлов + общий .git.
Команды
# Создать 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