Git worktree для параллельных AI-агентов

Git worktree для параллельных AI-агентов: у каждого агента своё рабочее дерево, без конфликтов, а каждый ход можно отменить. Команды и рабочий процесс.

Solviera Teknoloji 5 мин чтения

Параллельная разработка через git worktree — самый чистый способ вести несколько задач в одном репозитории и не смешивать их. С AI-агентами это ещё важнее: если два агента работают в одной папке, один затирает изменения другого, тесты идут по недописанному коду, и никто не понимает, какое изменение чьё.

В этой статье разберём, что такое git worktree, как использовать их с агентами и как сделать каждый ход агента обратимым.

Что такое git worktree?

Git worktree открывает другую ветку того же репозитория в отдельной папке и одновременно с остальными. У каждой папки свои рабочие файлы, но данные .git общие. Коммит, сделанный в одном worktree, сразу виден из других.

Сравнение с клоном:

WorktreeОтдельный клон
Место на дискеМало (история общая)Весь репозиторий
Видимость коммитовМгновеннаяНужны fetch/push
Одна ветка в двух местахЗапрещено (безопасно)Возможно (риск путаницы)
НастройкаОдна командаКлонировать и настроить

Основные команды

Создать worktree на новой ветке:

git worktree add ../acme-web-auth -b auth-refactor

Открыть worktree из существующей ветки:

git worktree add ../acme-web-billing billing-v2

Показать и удалить worktree:

git worktree list
git worktree remove ../acme-web-auth
git worktree prune

prune очищает записи о worktree, папки которых удалили вручную.

Параллельная разработка через git worktree: одно дерево на агента

Правило для параллельных агентов простое: дайте каждому агенту, у которого есть риск конфликтов, собственный worktree.

Пример раскладки:

АгентЗадачаWorktreeВетка
Architect (Claude Code)Перестройка авторизации../acme-web-authauth-refactor
Frontend (Gemini CLI)Страница настроек../acme-web-settingssettings-ui
Tester (Codex)Тесты авторизации../acme-web-authauth-refactor

Tester использует worktree Architect, потому что тестирует его изменение и работает только в tests/. Frontend-агент занят совсем другим, в своей ветке.

Что это даёт:

  • Агенты не видят чужие недописанные файлы.
  • Каждая задача вливается через собственную ветку и pull request.
  • Отказаться от задачи так же просто, как удалить её ветку.

Управление worktree в AgentVera

Worktree можно вести из командной строки, но по мере роста числа агентов уследить за ними трудно. В AgentVera вкладка Worktrees в правой панели позволяет:

  1. Создать worktree из новой или существующей ветки.
  2. Видеть для каждого worktree число изменений, насколько он впереди или позади основной ветки и его последний коммит.
  3. Запустить агента сразу в worktree.
  4. Заблокировать, очистить (prune) и принудительно удалить worktree, а также удалить его ветку.

При создании нового агента worktree можно выбрать как его рабочее пространство, а в панели агента ветка показывается небольшим тегом. Markdown-файлы, которые агенты меняют в worktree, отображаются в панели Specs как планы и документы.

Каждый ход можно отменить

Worktree разделяют агентов между собой. Но что, если агент пошёл не туда внутри своего worktree?

Традиционный ответ — коммитить почаще, но коммит на каждый шаг агента засоряет историю. Ходы в AgentVera идут другим путём:

  • В начале каждого хода снимок рабочей папки сохраняется в скрытую git-ссылку.
  • Ваша ветка, индекс и stash остаются нетронутыми.
  • На каждого агента хранятся последние 60 ходов.
  • В Turns в меню Options панели агента вы видите файлы, изменённые ходом.
  • Undo this turn откатывает изменения этого хода, и отмену тоже можно отменить.

Так агенту можно свободно пробовать разное: если результат не нравится, предыдущее состояние всего в одном клике.

Перед слиянием

Прежде чем вливать готовую работу из параллельных веток в основную:

  • Запустите тесты в каждом worktree.
  • Просмотрите диффы; автоматическое код-ревью ускоряет это.
  • Приведите в порядок сообщения коммитов. Панель Git в AgentVera умеет по staged-диффу написать сообщение в стиле вашего репозитория с помощью Claude Haiku.
  • Отправьте ветку и откройте pull request; карточка GitHub в панели Git показывает pull request текущей ветки или открывает новый.

Частые ошибки

  • Одна ветка в двух worktree. Git этого не позволит, и это защита.
  • Записи об удалённых папках. Очищайте их командой git worktree prune.
  • Забытые node_modules. В каждом worktree нужно установить свои зависимости.
  • Ходы агента вместо коммитов. Ходы нужны для отмены; для долговременной истории всё равно делайте коммиты.

Пример дня: три агента, две ветки

Разберём на примере рабочего дня.

Утро: настройка

В основной папке выбрана main. Есть две задачи: перестройка авторизации и страница настроек. Вы открываете два worktree:

git worktree add ../acme-web-auth -b auth-refactor
git worktree add ../acme-web-settings -b settings-ui

Установите зависимости в каждом:

cd ../acme-web-auth && pnpm install
cd ../acme-web-settings && pnpm install

Architect и Tester стартуют в worktree auth-refactor, а frontend-агент — в settings-ui.

День: ход пошёл не так

Правя страницу настроек, frontend-агент заодно меняет стили общего компонента. Это вне задачи. В списке Turns вы видите файлы, изменённые последним ходом, отменяете ход и просите агента не трогать общий компонент. История ветки остаётся чистой: отмена — не коммит, а возврат к снимку в скрытой ссылке.

Вечер: слияние

Когда работа над авторизацией закончена, вы запускаете тесты, проверяете ревью и отправляете ветку. Если страница настроек не готова, её worktree остаётся открытым, и завтра агент продолжит в той же папке. Когда вы закрываете и снова открываете приложение, AgentVera возвращает агентов Claude и Codex в тот же разговор из истории CLI.

На что смотреть в окружении worktree

Чаще всего при параллельных worktree мешает окружение, а не код:

  • Конфликты портов: если вы запускаете dev-сервер в двух worktree одновременно, не давайте обоим один и тот же порт. Задайте разные порты через переменные окружения.
  • Env-файлы: файлы вне git, такие как .env, сами в новом worktree не появятся; скопируйте их.
  • База данных: если в двух ветках разные миграции, общая локальная база может создать проблемы.

Панель Ports в AgentVera показывает прослушиваемые порты и какой агент запустил каждый, так что видно, какой worktree открыл какой сервер.

Копирование агента и ответвление разговора

Иногда хочется попробовать одну задачу двумя способами. Когда вы копируете агента в AgentVera, его инструмент, аккаунт, модель, effort, роль, группа и worktree копируются точно, а историю разговора можно ещё и ответвить (--fork-session для Claude, fork для Codex).

Вместе с worktree это даёт сильную схему экспериментов: запустите двух агентов, ответвлённых от одного разговора, в двух worktree, сравните результаты и влейте понравившуюся ветку. Удалив другую ветку, вы уберёте эксперимент без следа.

Чек-лист

  • У каждого агента с риском конфликтов есть свой worktree?
  • Зависимости установлены в каждом worktree?
  • В ролях агентов указано, в каких папках они работают?
  • Перед слиянием прошли тесты и ревью?

Подведём итог

Параллельная разработка через git worktree физически разводит агентов, а ходы делают обратимыми собственные изменения каждого агента. Вместе это основа безопасной работы с несколькими агентами.

AgentVera собирает worktree, ходы и панель Git в одном окне. Читайте вместе со статьёй о параллельных агентах для кода или начните с бесплатного плана.

Вопросы

Что такое git worktree?

Возможность git открывать разные ветки одного репозитория одновременно в отдельных папках. У каждой папки свои рабочие файлы, а история репозитория общая.

Чем worktree отличается от клона?

Клон — это полная копия репозитория. Worktree использует те же данные .git, занимает меньше места, а коммиты сразу видны во всех ветках.

Как отменить один из ходов агента?

AgentVera в начале каждого хода сохраняет снимок рабочей папки в скрытую git-ссылку. В Options → Turns вы видите файлы, изменённые ходом, и можете его отменить.

Влияет ли отмена хода на мою ветку или stash?

Нет. Снимки хранятся в скрытой ссылке; ваша ветка, индекс и stash остаются нетронутыми.

Соберите своих агентов за одним столом.

Скачайте AgentVera бесплатно; ваши установленные CLI уже готовы к работе.

Другие статьи