Команда git worktree add создаёт ещё одну рабочую копию того же репозитория со своей веткой, своим HEAD и своим индексом. История и объекты при этом общие, клонировать заново не нужно.
Для параллельных агентов это самый простой способ развести их по разным каталогам. Два агента в одной папке правят одни и те же файлы и ломают друг другу сборку. В отдельных worktree каждый работает в своей ветке.
Порядок работы:
git worktree add -b agent-auth ../repo-auth
git worktree add -b agent-docs ../repo-docs
git worktree list
Дальше каждого агента запускают в своём каталоге. Когда задача готова:
1. Проверить diff в ветке и смержить её обычным путём.
2. Удалить рабочую копию: git worktree remove ../repo-auth. Git откажется удалять копию с незакоммиченными правками, это защита.
3. Каталог удалили руками? Тогда git worktree prune уберёт служебные записи.
Важное ограничение из документации: одну ветку нельзя держать сразу в двух worktree без --force. Поэтому каждому агенту нужна своя ветка.
Часть агентов умеет делать это сама. В Claude Code у субагента есть параметр isolation: worktree. Он запускает субагента во временной копии репозитория и удаляет её, если правок не было.
Документация: https://git-scm.com/docs/git-worktree
Сколько агентов вы запускаете параллельно на одном репозитории?
Просмотры: 2