Ты решил запустить независимые куски параллельно — но есть подвох. Если несколько агентов правят одну и ту же рабочую копию репозитория, они спотыкаются друг о друга: переключения веток, недописанные файлы, перемешанные изменения. Решение придумано в самом git — это worktree.
Что такое worktree
Worktree — это несколько рабочих копий одного репозитория в разных папках, у каждой своя ветка. История общая (один .git), а файлы на диске — отдельные. Значит, агент в одной папке правит ветку feature-x, а другой в соседней папке — feature-y, и они физически не пересекаются.
Создать копию на новой ветке:
git worktree add ../feature-x feature-x
Это создаёт папку ../feature-x с рабочей копией, переключённой на ветку feature-x. Рядом — ещё одна для второго агента:
git worktree add ../feature-y feature-y
Посмотреть все рабочие копии:
git worktree list
Когда ветка влита и копия больше не нужна — убери папку:
git worktree remove ../feature-x
Зачем это дирижёру
Теперь схема параллельной работы становится безопасной: каждому субагенту — своя worktree и своя ветка. Они правят один проект одновременно, но каждый в своей папке, поэтому конфликтов рабочей копии не возникает. Сводишь результаты обычным git-слиянием веток, когда все закончат.
Два агента, которые пишут в один и тот же файл в одной копии, — это гонка. Те же двое в отдельных worktree на разных ветках — спокойная параллельная работа. Папка-копия и есть та самая изоляция.
Эти команды показаны примерами для чтения — встроенный терминал-тренажёр платформы их не выполняет. Запускай их в настоящем git-репозитории.