
Разбор · 8 октября 2026
Git worktree разделяет рабочие папки параллельных агентов, а совместимость правок проверяют отдельно
Отдельные папки позволяют агентам работать одновременно. CTO принимает общий результат: изменения должны работать вместе на актуальной версии кода.
Материал подготовлен машиной агентов под надзором автора vibecoding.ru · факты проверены 8 октября 2026
Git worktree позволяет дать каждой задаче свою рабочую папку и ветку в одном репозитории. Агенты не перезаписывают несохранённые файлы друг друга, пока работают внутри своих папок. Но после объединения правок общая функция всё равно может сломаться.
CTO нужны два доказательства: исполнитель работал в разрешённых границах, а собранная версия проходит сценарий пользователя. Фраза «агенты разнесены по worktree» отвечает только на первый вопрос, и то вместе с правилами доступа к файлам.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Ветка разделяет историю, worktree разделяет рабочие файлы.
Ветка хранит линию изменений. Рабочая папка содержит файлы, которые агент сейчас редактирует. Если два агента работают в одной папке, переключение ветки и редактирование файлов происходят в одном рабочем пространстве. Назвать каждому свою ветку недостаточно.
Worktree добавляет другую рабочую папку к тому же репозиторию. У неё свои текущая версия и набор подготовленных к коммиту изменений. История репозитория и ссылки на ветки общие. Для параллельных задач обычно создают разные ветки в разных папках.
Общий репозиторий экономит дублирование истории, но не разделяет все ресурсы проекта. База данных, сетевой порт и внешняя система могут остаться общими. Их разделение инженер задаёт отдельно, исходя из границ задачи для агента.
Для параллельной работы нужны разные рабочие папки.
Git worktree, проверено 08.10.2026. Разделение внешних ресурсов: инженерный вывод, а не свойство команды Git.
2. Разные файлы могут сломать одну функцию.
Представим систему заказов. Первый агент меняет признак завершённого заказа: теперь это статус «выполнен». Второй пишет отчёт и считает завершёнными заказы со старым статусом «закрыт». Они редактируют разные файлы и не мешают друг другу в папках.
Git может объединить такие правки без текстового конфликта. Он совмещает изменения файлов, но не знает, что в бизнесе считается завершённым заказом. Чистое слияние не доказывает, что новый отчёт покажет новый заказ.
Для приёмки нужен сценарий: создать заказ, завершить его новым способом, открыть отчёт и увидеть этот заказ ровно один раз. Проверка запускается на версии с обеими правками. Прогон каждой ветки отдельно мог не проверять эту связку.
Чистое слияние ещё не означает работающий отчёт.
Условный редакционный пример, не клиентский кейс. Механика слияния: Git merge, проверено 08.10.2026.
3. Отдельная папка защищает только в пределах разрешённых действий.
В нашей машине vibecoding.ru агент однажды заменил слово по всему репозиторию и задел чужие зоны. В другом заходе исполнитель удалил рабочую папку соседней задачи по совпадению имени. Это ошибки границ работы: дополнительная папка сама их не запрещает.
Worktree не ограничивает права процесса. Агент с доступом к соседним каталогам может перейти туда или выполнить команду по общему пути. Поэтому правила для ИИ-агентов задают разрешённые файлы, запрет на чужие изменения и порядок удаления рабочих папок.
Инженер ведёт машину агентов на собственном проекте; открытая история нашей машины показывает её работу. Клиентского кейса, где мы измерили эффект worktree, у нас нет. Эти поломки объясняют риски, но не доказывают процент предотвращённых ошибок.
Поломка превращается в ограничение следующего захода.
02.08
Глобальная замена затронула чужие зоны. Правило после: менять только подтверждённый список файлов, перед сдачей просматривать состав правки.
10.09
По совпадению имени удалили рабочую папку соседней задачи. Урок: имя папки не подтверждает, что работа в ней закончена и её можно удалить.
19.09
При разборе нехватки места вспомнили потерю соседней папки. Автоматическую чистку рабочих копий отвергли; за нехваткой места следят, удаление оставили управляемым действием.
Журналы собственной машины vibecoding.ru: записи 02.08 и 19.09.2026; вторая фиксирует событие 10.09. Истории также пересказаны в опубликованных статьях серии. Это не внедрение worktree у клиента.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Рабочие папки | Прочитана официальная документация Git worktree. Отдельные рабочие файлы не означают отдельные права доступа. | 2026-10-08 |
| Общая версия | Прочитаны Git merge и GitHub merge queue. Необходимость проверки поведения показана на условном примере, не на клиентском кейсе. | 2026-10-08 |
| Наши ошибки | Исходные журнальные записи сверены с инвентарём серии. Не измеряли число предотвращённых конфликтов, ускорение или клиентскую экономию. | 2026-10-08 |
| Подписка | Живая /services, 08.10.2026, 04:34 МСК. «Все проекты»: 500 000 ₽/месяц, три потока. Поток определён как одна задача в работе. | 2026-10-08 |
4. Правки принимают на той версии, которая пойдёт в общий код.
Допустим, агент закончил задачу и показал зелёные проверки. Пока он работал, соседняя задача изменила общий код. Старый прогон подтверждает старое сочетание изменений. Он не отвечает на вопрос, что получится при объединении сейчас.
Перед приёмкой инженер собирает проверяемую версию из актуальной основной ветки и принимаемых правок. Затем запускает проверки и связанные сценарии. Если состав версии изменился после прогона, доказательство совместимости нужно получить заново.
GitHub описывает этот принцип в очереди слияния: изменения проверяются с актуальной базовой веткой и предыдущими правками в очереди. Очередь не обязательна для каждого проекта; собрать и проверить общую версию можно другим способом. Общий порядок работы руководителя важнее названия инструмента.
Приёмка связывает результат проверки с версией кода.
GitHub Docs, Managing a merge queue, проверено 08.10.2026. Таблица: редакционная схема приёмки, не утверждение о настройках всех репозиториев.
5. Общую основу меняют по очереди, независимые задачи делают параллельно.
Количество папок не определяет количество независимых задач. Изменение общего формата заказа и отчёт по этому заказу зависят друг от друга. Сначала согласуют формат, затем обе задачи проверяют на нём. Иначе агентам придётся угадывать решение соседа.
Разные страницы или независимые функции проще разнести по рабочим папкам. Но если обе используют одну базу для тестов, тестовые данные тоже могут мешать. Worktree отделяет файлы; инженер отдельно решает, нужны ли разные базы и настройки запуска.
Для задачи, которая меняет общую основу, полезнее очередь, чем ещё один агент. Кто разрешает такое изменение и принимает риск, относится к ответственности за ошибку агента. После сбоя уточняют правило или добавляют проверку, чтобы следующий заход не повторил ту же ошибку.
Зависимости определяют порядок работы.
Инженерные рекомендации редакции на основе границ worktree и условного примера заказов. Это не замер производительности.
6. У подрядчика покупают совместимый результат, а не число агентов.
В нашей подписке на агентную разработку тариф «Все проекты» стоит 500 000 ₽/месяц и включает три потока. На странице сервиса поток определён как одна задача в работе, следующая ждёт в очереди. Условия сверены 8 октября 2026 года; три потока не означают три агента в одной ветке.
Инженер изолирует рабочие изменения и проверяет их совместимость при сдаче. Для CTO это предмет приёмки: какие задачи шли параллельно, где их результаты соединились и какой сценарий подтвердил работу вместе. Число запущенных агентов само по себе ответа не даёт.
Мультиагентная система должна возвращать найденную ошибку исполнителю и завершать задачу проверенным результатом.
Если подрядчик уже обещает параллельную разработку, попросите показать одну общую версию и связанный сценарий из вашего продукта. Следующий шаг для руководителя поможет перейти к обсуждению проекта. К встрече достаточно списка задач и места, где они зависят друг от друга.
Доказательство сдачи полезнее обещания параллельности.
Вопросы редакции для приёмки разработки. Тариф и определение потока: /services, 08.10.2026, 04:34 МСК.
7. Частые вопросы
Как создать отдельную папку командой git worktree add?+
Например, git worktree add -b task-report ../task-report main создаёт ветку task-report и рабочую папку от локальной main. Это учебный пример: локальную main сначала приводят к нужной актуальной версии, а имя ветки и свободный путь выбирают под задачу. Команда не настраивает отдельную базу или доступы.
Можно ли открыть одну ветку сразу в двух worktree?+
Обычно Git откажет, если ветка уже открыта в другой рабочей папке. Для независимых задач используют разные ветки. Обход защитного ограничения не делает совместное редактирование безопасным.
Чем worktree отличается от второго клона?+
Worktree использует общий репозиторий с другими рабочими папками. Второй клон создаёт отдельный локальный репозиторий. Оба варианта разделяют рабочие файлы, но совместимость их результатов всё равно проверяют после объединения.
Как убрать worktree после завершения задачи?+
Сначала проверяют, что нужные изменения сохранены и папка действительно принадлежит завершённой задаче. Список показывает git worktree list, удаление выполняет git worktree remove <путь>. По умолчанию Git откажет при изменённых или неотслеживаемых файлах; это полезная защита от потери работы.
Сколько агентов можно запустить одновременно?+
Worktree не задаёт полезное для бизнеса число. Оно зависит от независимости задач, ресурсов машины и возможности принимать общий результат. Если задачи спорят за общий формат или данные, увеличение числа агентов добавляет согласование.
Источники
- Git: git-worktree — официальная документация
- Git: git-merge — официальная документация
- GitHub Docs: Managing a merge queue — официальная документация
- vibecoding.ru: открытая машина агентов — собственный публичный проект
- vibecoding.ru: агентная разработка для бизнеса — условия сервиса
- vibecoding.ru: руководитель разработки и агенты — собственные истории поломок
- vibecoding.ru: технический долг — собственная история глобальной замены
Запомнить
1. Дайте параллельным задачам разные ветки и рабочие папки. Одни названия веток не разделяют редактируемые файлы.
2. Ограничьте работу разрешёнными файлами. Worktree не запрещает процессу перейти в соседнюю папку.
3. Проверяйте связанные задачи вместе на актуальной основной версии. Отсутствие конфликта Git не подтверждает поведение продукта.
4. Сохраняйте идентификатор проверенной версии. После изменения её состава заново проверьте затронутые сценарии.
5. Превращайте сбой в правило или проверку. Так следующий параллельный заход получает защиту от уже известной ошибки.