Git Worktree vs Branch: секретное оружие вайб-кодинга с AI-агентами
Классическая модель git была придумана для одного разработчика, который пишет одну задачу в одной папке. В 2026 году этот сценарий мёртв. Рядом с тобой работают три AI-агента, каждый пилит свою фичу, и все хотят писать в src/ одновременно.
Если ты всё ещё жонглируешь git stash и git checkout — ты работаешь не с git, а против него. Пора познакомиться с worktree.
Branch — это закладка. Worktree — это комната
Первое, что путают новички: ветка и worktree — это не одно и то же.
BRANCH ── указатель на коммит в истории
существует внутри .git/
одна ветка = одна закладка
WORKTREE ── физическая папка на диске
привязана к ветке
одна worktree = одна рабочая копия файлов
Когда ты делаешь git checkout feature-x, git перезаписывает файлы в твоей единственной рабочей папке. Вся мебель в комнате исчезает и появляется заново. Если у тебя были незакоммиченные изменения — беги стэшить, пока не поздно.
Worktree решает это радикально: новая папка на диске для каждой ветки. Ты работаешь в feature-x/ и hotfix-y/ одновременно, как будто у тебя два клона репозитория. Только это не клон — объекты git шарятся, на диске лежит только разница.
Почему это важно для вайб-кодинга
Представь реальный сценарий 2026 года:
- Агент №1 рефакторит авторизацию в
src/auth/ - Агент №2 добавляет новую страницу в
src/pages/ - Агент №3 чинит баг в тестах
- Ты сам правишь CSS
Если все сидят в одной папке — это катастрофа. Агент №1 переименовывает функцию, агент №2 читает её старое имя, тесты падают у всех. Один git checkout стирает работу другого.
С worktree каждый получает изолированную песочницу:
NoAiWeb/ ← твой main
.claude/worktrees/
├── auth-refactor/ ← агент №1, ветка feature/auth
├── new-page/ ← агент №2, ветка feature/page
└── test-fix/ ← агент №3, ветка fix/tests
Каждая папка — полноценный checkout. Свой node_modules, свой dev-сервер на своём порту, свои незакоммиченные изменения. Никто никому не мешает.
Именно поэтому Claude Code с флагом -w автоматически создаёт worktree для агента. И именно поэтому ты видишь папки типа .claude/worktrees/vigilant-bose-3d9ad1/ после сессий.
Команды, которые нужно знать
Всего пять. Больше не понадобится.
# создать worktree с новой веткой
git worktree add ../feature-x -b feature/x
# создать worktree из существующей ветки
git worktree add ../hotfix hotfix/payment
# посмотреть все worktree
git worktree list
# удалить worktree (папку)
git worktree remove ../feature-x
# подчистить мёртвые ссылки после ручного удаления папки
git worktree prune
Главное правило: одна ветка = одна worktree. Git не даст одновременно checkout одной ветки в двух местах — это защита от гонок.
Best Practices для AI-воркфлоу
1. Два-три агента — потолок
Запускать пятерых агентов параллельно звучит круто, пока ты не пытаешься отслеживать, что они наворотили. Практика: 2–3 сессии — максимум, который человек способен мониторить. Больше — и ты просто мёрджишь мусор.
2. Скоупь задачи так, чтобы файлы не пересекались
Главный источник боли — мёрдж-конфликты между worktree’ами. Если агент №1 и агент №2 оба трогают Layout.astro, ты сам себе создал проблему. Давай агентам непересекающиеся зоны: один работает в src/auth/, другой в src/pages/. Конфликтов не будет.
3. Общий контекст → CLAUDE.md. Задача → в промпт
CLAUDE.md в корне репозитория читают все worktree — это общий источник правды о проекте. Туда кладут конвенции, стек, архитектуру. А специфичная задача конкретной сессии идёт в стартовый промпт агента. Не смешивай.
4. Запускай /init в каждой новой worktree
Новый worktree = новая сессия агента. Даже если это тот же репозиторий, сессия не знает, что ты делал в другой папке. /init заставляет Claude перечитать CLAUDE.md и сориентироваться.
5. .env не копируется — используй .worktreeinclude
Worktree — это свежий checkout. Файлы, которые в .gitignore (типа .env.local), не попадают в новую папку. Агент запускает npm run dev — падает, потому что нет ключей.
Решение: файл .worktreeinclude в корне проекта. Синтаксис как у .gitignore:
.env
.env.local
.vscode/settings.json
Claude Code при создании worktree скопирует эти файлы автоматически. Работает только для gitignored файлов — отслеживаемые не дублируются.
6. Добавь .claude/worktrees/ в .gitignore
Иначе в git status основного репозитория будут светиться сотни чужих файлов. Одна строчка — и порядок:
.claude/worktrees/
7. Workflow: Explore → Plan → Code → Commit
Даже с изоляцией не давай агенту кодить с ходу. Сначала изучить кодовую базу, потом составить план, показать его тебе, и только потом писать. Это базовая практика Claude Code, и в worktree-режиме она критична: ошибка в изолированной песочнице всё равно мёрджится в main.
8. Чисти worktree после мёрджа
Отработанный worktree — это кладбище из node_modules на несколько гигабайт. После мёрджа PR:
git worktree remove .claude/worktrees/feature-x
git branch -d feature/x
Или одной строкой на всё заброшенное: git worktree prune.
Когда worktree не нужен
Не молоток для каждого гвоздя.
- Задача на 10 минут.
git stash && git checkoutбыстрее, чем создавать worktree, ставить зависимости и запускать сервер на новом порту. - У тебя один агент и одна задача. Изоляция решает проблему, которой у тебя нет.
- Монорепо с тяжёлыми зависимостями. Каждый worktree — это отдельный
node_modules. Если у тебя проект на 3 ГБ, пять worktree’ов съедят 15 ГБ диска и пол-ноута RAM на запущенных dev-серверах.
Итог
Ветка — это закладка в истории. Worktree — физическая рабочая копия на диске. До AI-агентов разница была академической: один разработчик, один контекст, git checkout хватало. Сейчас — нет.
Если ты хочешь, чтобы Claude, Codex и Cursor работали одновременно и не затирали друг друга — worktree не опция, а инфраструктура. Настрой .worktreeinclude, добавь .claude/worktrees/ в .gitignore, держи 2–3 агента максимум, и забудь про git stash как про страшный сон.
Git наконец-то стал готов к тому, что разработчик — это не один человек.
Источники
- Claude Code Docs — Common Workflows
- Parallel Vibe Coding: Using Git Worktrees with Claude Code — Dan Does Code
- How we’re shipping faster with Claude Code and Git Worktrees — incident.io
- Git worktrees for parallel AI coding agents — Upsun
- Using Git Worktrees for Multi-Feature Development with AI Agents — Nick Mitchinson
- Why Git Worktrees Are the Secret Weapon for Parallel Development in Coding Agents — Medium