
Git‑worktrees: как управлять несколькими ветками без лишних репозиториев
Git worktrees позволяют работать с несколькими ветками в отдельных каталогах без дублирования репозитория. Узнайте, как их настроить и зачем они нужны.
Git‑worktrees – это механизм, появившийся в Git в 2015 году, который позволяет создавать дополнительные рабочие каталоги (worktrees) для одной и той же истории репозитория. Каждый worktree привязан к отдельной ветке, но при этом использует общие объекты в .git‑директории, что экономит место и ускоряет переключение контекстов.
Как это работает?
Команда git worktree add <path> <branch> создаёт новый каталог, где будет проверена указанная ветка. При этом Git создаёт в .git/worktrees метаданные о каждом worktree, а сами файлы находятся в отдельной папке, а не в основной рабочей директории. Удалить worktree можно командой git worktree remove <path>.
Почему это удобно?
- Одновременная работа над несколькими фичами – без постоянного
git checkoutи без риска потерять несохранённые изменения. - Экономия дискового пространства – объекты хранятся единожды, а не копируются в каждый клон.
- Ускоренный CI/CD – можно запускать тесты в изолированных worktree, не влияя на основной код.
- Интеграция с GitHub Copilot – Copilot понимает контекст текущего worktree, предоставляя релевантные предложения кода в каждой ветке.
Практические сценарии
Разработчики часто используют worktree для:
- Одновременного рефакторинга старой версии и разработки новой функции.
- Подготовки релизных веток, где каждый worktree соответствует отдельному релизу.
- Тестирования разных конфигураций проекта без создания отдельных клонов.
Как начать?
- Убедитесь, что у вас Git 2.5+.
- Выполните
git worktree add ./feature-x feature-x. - Работайте в новом каталоге как обычно –
git status,git commitи т.д.
Подробнее о синтаксисе и продвинутых опциях можно найти в официальной документации Git.
Для AI‑разработчиков worktrees открывают возможность держать несколько экспериментальных веток с разными версиями моделей в отдельных каталогах, не перегружая основной репозиторий. Это упрощает интеграцию Copilot и ускоряет тестирование, но требует внимательного управления метаданными, чтобы не оставлять «заброшенных» worktree.


