- 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>
79 lines
3.5 KiB
Markdown
79 lines
3.5 KiB
Markdown
---
|
||
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]]
|