Багодельня
Справочник Claude Code

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. 1. Что даёт git worktree?

  2. 2. Зачем worktree при работе с несколькими агентами?

  3. 3. Когда worktree НЕ даёт выигрыша?

On this page