git worktree и параллельные агенты
Как запускать несколько агентов на одном репозитории, чтобы они не толкались: git worktree даёт каждому свою рабочую копию. Плюс cmux.
Один агент на репозиторий — спокойно. А вот два-три агента разом в одной папке начинают мешать друг другу: один переключил ветку, другой переписал файл, третий запустил сборку поверх чужих правок. Решение — git worktree.
Что такое git worktree
Обычно репозиторий — это одна рабочая папка на одну ветку. worktree позволяет иметь несколько рабочих папок из одного репозитория, каждую на своей ветке. История (.git) общая, а файлы — раздельные.
my-repo/ ← основная папка, ветка main
my-repo-feature-a/ ← worktree, ветка feature-a
my-repo-feature-b/ ← worktree, ветка feature-b
└── всё это один репозиторий, общая историяТо есть каждый агент работает в своей изолированной копии и не наступает на чужие правки. Закончил — ветки сливаешь как обычно.
Зачем это агенту
- Параллельная работа. Запускаешь несколько агентов на разные задачи разом — каждый в своём worktree. Никаких конфликтов «кто переключил ветку».
- Безопасный эксперимент. Агент может смело ломать и переписывать в своей копии — основная папка цела.
- Чистое слияние. Хорошее свернул в
main, неудачное — просто удалил worktree.
Команды
Три команды покрывают весь цикл:
# создать worktree на новой ветке (в соседней папке)
git worktree add ../my-repo-feature-a -b feature-a
# посмотреть все worktree репозитория
git worktree list
# удалить, когда работа слита или больше не нужна
git worktree remove ../my-repo-feature-aДальше в каждой папке запускаешь свою сессию Claude Code — получаешь параллельных агентов на изолированных ветках.
Руками плодить папки не обязательно — попроси самого агента: «заведи worktree под фичу feature-a и работай в нём». Команду git worktree add он выполнит сам.
Claude Code умеет это сам: у запуска агента есть изоляция worktree — агенту выдаётся свой временный git-worktree, который автоматически убирается, если агент ничего не изменил. Полезно, когда несколько сабагентов правят файлы параллельно и иначе передрались бы.
cmux — обёртка для параллельных агентов
Дёргать git worktree руками для каждого агента утомительно. cmux автоматизирует связку «worktree + ветка + запуск агента»:
cmux new <branch> # создать worktree + ветку и запустить агента
cmux start <branch> # вернуться к работе в существующем worktree
cmux merge # влить готовую работу обратно
cmux rm # убрать законченный worktreeУдобно, когда задачу можно разбить на независимые куски (разные файлы/фичи) и пустить по агенту на каждый.
worktree хорош для независимых задач. Если две задачи правят одни и те же файлы — параллелить их через worktree смысла мало: всё равно упрётесь в конфликт при слиянии. Дели работу так, чтобы куски не пересекались.
Точные команды git — в официальной документации git worktree.
Проверь себя
1. Что даёт git worktree?
2. Зачем worktree при работе с несколькими агентами?
3. Когда worktree НЕ даёт выигрыша?
Контекст и откат
Управление контекст-окном Claude Code: /context, /compact, чекпоинты и /rewind. Почему агент «тупеет» в длинных сессиях и что с этим делать.
Skills
Skills в Claude Code — повторяемые воркфлоу одной командой. Что это, чем отличается от своей слэш-команды и где готовый туториал по созданию.