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

URL: https://agentvera.dev/ru/blog/git-worktree-parallel-agents/ · Опубликовано: 2026-09-28

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

**Коротко:**

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

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

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

## Что такое git worktree?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

| Агент | Задача | Worktree | Ветка |
| --- | --- | --- | --- |
| Architect (Claude Code) | Перестройка авторизации | `../acme-web-auth` | `auth-refactor` |
| Frontend (Gemini CLI) | Страница настроек | `../acme-web-settings` | `settings-ui` |
| Tester (Codex) | Тесты авторизации | `../acme-web-auth` | `auth-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?

Традиционный ответ — коммитить почаще, но коммит на каждый шаг агента засоряет историю. [Ходы](/ru/features/checkpoints-and-replay/) в AgentVera идут другим путём:

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

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

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

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

- Запустите тесты в каждом worktree.
- Просмотрите диффы; [автоматическое код-ревью](/ru/blog/ai-code-review/) ускоряет это.
- Приведите в порядок сообщения коммитов. [Панель Git](/ru/features/git-and-github/) в AgentVera умеет по staged-диффу написать сообщение в стиле вашего репозитория с помощью Claude Haiku.
- Отправьте ветку и откройте pull request; карточка GitHub в панели Git показывает pull request текущей ветки или открывает новый.

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

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

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

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

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

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

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

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

```bash
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 в одном окне. Читайте вместе со статьёй о [параллельных агентах для кода](/ru/blog/parallel-coding-agents/) или [начните с бесплатного плана](/ru/).

## Частые вопросы

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

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

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

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

---

**Об AgentVera.** AgentVera — настольное приложение для macOS, Windows и Linux от Solviera Teknoloji. Оно запускает 18 ИИ-агентов для программирования (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) рядом, по проектам, в настоящих терминалах с собственными установками CLI и входами пользователя. В бесплатном тарифе количество агентов не ограничено. Скачать: https://agentvera.dev/ru/download/ · Цены: https://agentvera.dev/ru/pricing/
