Библиотека · Автоматизация: браузер, экран и расписание

Git Worktrees — параллельная разработка

Строитель55 минОбновлено: октябрь 2026
44 из 105 в библиотеке

Модуль: 9. Продвинутые возможности | Время: ~25 мин теории + 30 мин практики

Суть урока

Представь что у тебя два рабочих стола для одного проекта: на первом пишешь основной код, на втором экспериментируешь. Они не мешают друг другу — и оба агента работают одновременно. Это и есть Git (гит — система контроля версий) Worktrees (воркtри — параллельные рабочие копии репозитория).

Термины урока: git (гит — система контроля версий), worktree (воркtри — параллельная рабочая копия репозитория), CI/CD (си-ай/си-ди — Continuous Integration/Delivery, непрерывная интеграция и доставка), GitHub Actions (ГитХаб Экшенс — система автоматизации в GitHub), workflow (воркфлоу — рабочий процесс), agent (агент — автономный исполнитель).

Ключевые концепции

  • Git и GitHub: локальное vs облачное
  • Worktree = параллельные рабочие копии одного репозитория
  • Два агента на две ветки = параллельная разработка без конфликтов
  • Встроенная поддержка в Claude Code: claude --worktree <имя>
  • GitHub Actions и автоматизация CI/CD (непрерывная интеграция и доставка)

Теория

Git и GitHub — в чём разница

🎨 Образ: Git — личный дневник с историей каждой правки. GitHub — банковский сейф где хранится копия дневника. Дневник сгорит — копия в сейфе останется.

Git — программа которая живёт на твоём компьютере. Она отслеживает все изменения в файлах проекта и позволяет:

  • Вернуться к любой предыдущей версии
  • Работать в нескольких ветках параллельно
  • Видеть кто, когда и что изменил

GitHub — облачная платформа где хранятся Git-репозитории. Дополнительно к хранению она даёт:

  • Backup в облаке (если компьютер умрёт — код сохранится)
  • Совместную работу с командой
  • Pull Requests для ревью кода
  • GitHub Actions для автоматизации

Образ: Git — твой личный дневник, GitHub — сейф в банке где хранится копия.

Ветки и Pull Requests

🎨 Образ: Ветка — как черновик в отдельной тетради. Основной конспект нетронут, в черновике пробуешь новую структуру. Если получилось — переносишь в основной (merge). Если нет — черновик в мусор.

Ветка (branch) — это параллельная линия разработки. Ты создаёшь ветку чтобы поработать над фичей не ломая основной код:

bash
git checkout -b feature/payment-integration
# Теперь все изменения идут в ветку feature/payment-integration
# Основная ветка (main) остаётся нетронутой

Pull Request (PR) — предложение влить изменения из ветки в основную. Для соло-разработчиков это полезно как история решений. Для команды — это обязательный этап ревью кода.


Что такое Git Worktrees

🎨 Образ: Worktree — два рабочих стола для одного проекта. На первом пишешь основной код, на втором чинишь баг. Ящики общие, но столешницы отдельные — не мешаются.

Обычно у тебя одна рабочая копия репозитория. Worktrees позволяет иметь несколько рабочих копий одновременно, каждая на своей ветке.

Без worktrees:

Код
my-project/          ← одна папка, одна ветка
  src/
  tests/

Хочешь переключиться на другую ветку? Приходится делать git stash или git checkout — и ты теряешь текущий контекст.

С worktrees:

Код
my-project/              ← основная ветка (main)
  src/
  tests/

my-project-feature-A/   ← ветка feature-A
  src/
  tests/

my-project-hotfix/       ← ветка hotfix
  src/
  tests/

Три отдельных папки, три разных состояния кода, один репозиторий под капотом.


Почему это важно с Claude Code

🎨 Образ: Два агента в двух worktrees — как два хирурга в двух операционных. Один делает плановую операцию (основная фича), другой — срочную (хотфикс). Один анестезиолог обслуживает обоих не зная о втором.

Каждый экземпляр Claude Code работает с файлами в своей директории. Запусти Claude Code в my-project/ — он работает с main. Запусти в my-project-feature-A/ — он работает с feature-A.

Сценарий параллельной разработки:

Код
Агент 1 (в my-project/):
→ Пишет основной воркфлоу обработки заказов
→ Интегрирует базу данных
→ Пишет тесты

Агент 2 (в my-project-feature-A/):
→ Одновременно разрабатывает UI для просмотра заказов
→ Создаёт API endpoints
→ Документирует

Оба работают ОДНОВРЕМЕННО, не мешают друг другу

Вместо последовательного "сначала одно, потом другое" — параллельная разработка. На практике это может заметно сократить время выполнения проекта.


Как создать и использовать Worktrees

Самый короткий путь: встроенный флаг Claude Code. Начиная с современных версий не обязательно создавать worktree руками:

bash
claude --worktree feature-auth

Команда (можно коротко -w) создаёт изолированный worktree в папке .claude/worktrees/feature-auth/ на новой ветке worktree-feature-auth и сразу запускает в нём Claude. Запусти ту же команду с другим именем в другом терминале — получишь вторую изолированную сессию. Что ещё полезно знать:

  • Добавь .claude/worktrees/ в .gitignore, чтобы папки worktree не светились в основном репозитории.
  • Worktree — свежая копия: секретные файлы вроде .env в неё не попадают. Чтобы они копировались автоматически, положи в корень проекта файл .worktreeinclude (синтаксис как у .gitignore).
  • Можно просто попросить Claude в сессии: «поработай в worktree». Суб-агента тоже можно изолировать: в его файле добавь isolation: worktree (см. урок Суб-агенты).
  • При выходе Claude проверяет, нет ли в worktree несохранённой работы, и спрашивает, оставить его или удалить.
  • Нужен git-репозиторий. Документация: code.claude.com/docs/en/worktrees.

Ниже — то же самое вручную, средствами самого git. Это полезно знать, чтобы понимать, что происходит под капотом.

Шаг 1: Создать worktree

bash
# В основной папке проекта:
git worktree add ../my-project-feature-A feature-A

# Что происходит:
# - Создаётся папка my-project-feature-A рядом с основной
# - Она переключена на ветку feature-A
# - Если ветка не существует — добавь -b: git worktree add -b feature-A ../my-project-feature-A

Шаг 2: Запустить Claude Code в каждой папке

bash
# Терминал 1:
cd my-project
claude

# Терминал 2 (новое окно):
cd my-project-feature-A
claude

Шаг 3: Посмотреть все активные worktrees

bash
git worktree list
# Выведет:
# /path/to/my-project          abc1234 [main]
# /path/to/my-project-feature-A  def5678 [feature-A]

Шаг 4: Удалить worktree после завершения

bash
git worktree remove my-project-feature-A

GitHub Actions — автоматизация CI/CD

🎨 Образ: GitHub Actions — ОТК на заводе. Каждую деталь (коммит) автоматически проверяют на стенде (тесты). Не прошла контроль — не идёт на сборку (merge в main). Инженер ОТК никогда не спит.

CI/CD (Continuous Integration / Continuous Deployment) — автоматический запуск тестов и деплоя при изменении кода.

GitHub Actions позволяет настроить это без дополнительных сервисов:

yaml
# .github/workflows/test.yml
name: Run Tests

on:
  push:
    branches: [main, feature-*]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      # версии действий (@v4, @v5) периодически обновляются: сверяйся со страницей действия на GitHub
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - name: Install dependencies
        run: pip install -r requirements.txt
      - name: Run tests
        run: pytest

Теперь каждый раз когда ты пушишь код — GitHub автоматически запускает тесты. Если тесты не прошли — GitHub не позволит влить изменения в main (если включено соответствующее правило защиты ветки).

Для Claude Code это означает: агент пишет код, пушит в ветку, GitHub Actions запускает тесты, ты видишь результат прямо в Pull Request — не открывая терминал.


Интеграция с Trigger.dev

Если твой проект использует Trigger.dev для воркфлоу, можно настроить автоматический деплой (проверено по документации Trigger.dev в октябре 2026):

yaml
# .github/workflows/deploy.yml
name: Deploy to Trigger.dev

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy workflows
        run: npx trigger.dev@latest deploy
        env:
          TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }}

Пуш в main → автоматический деплой воркфлоу на Trigger.dev. Никакого ручного деплоя.


Практика

Задание: Запустить двух агентов параллельно через worktrees

  1. Создай новый репозиторий или используй существующий:

    bash
    mkdir parallel-demo && cd parallel-demo
    git init
    echo "# Parallel Demo" > README.md
    git add . && git commit -m "Initial commit"
  2. Создай worktree для второй ветки:

    bash
    git worktree add -b feature-backend ../parallel-demo-backend
  3. Открой два терминала:

    • Терминал 1: cd parallel-demo && claude
    • Терминал 2: cd parallel-demo-backend && claude
  4. Дай каждому агенту разную задачу:

    • Агент 1: "Создай README с описанием проекта и инструкцией по установке"
    • Агент 2: "Создай базовый Python-скрипт main.py с функцией hello_world"
  5. Наблюдай как оба работают одновременно

  6. После завершения — слей изменения:

    bash
    cd parallel-demo
    git merge feature-backend
    git worktree remove ../parallel-demo-backend

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

1. Забыть удалить worktree после merge Worktrees копят папки на диске. После слияния ветки — всегда удаляй:

bash
git worktree remove ../my-project-feature-A
# Проверь что не осталось "висящих":
git worktree list

2. Пытаться checkout одну ветку в двух worktrees Git не позволяет одну ветку открыть в двух worktrees одновременно. Каждый worktree = уникальная ветка.

3. Редактировать файлы в worktree из другой IDE Если открыл worktree в Claude Code — не редактируй те же файлы из VS Code одновременно. Конфликты гарантированы.

4. Не создавать ветку перед worktree Если ветки ещё нет — используй флаг -b:

bash
git worktree add -b feature-new ../my-project-new

5. Merge без проверки тестов Перед merge из worktree — запусти тесты в обеих ветках. GitHub Actions автоматизирует это через CI.


Инструменты и ресурсы

  • Git Worktree — официальная документация — git-scm.com/docs/git-worktree
  • GitHub Actions — автоматизация CI/CD — docs.github.com/en/actions (для публичных репозиториев бесплатно, для приватных есть ежемесячный бесплатный лимит минут; актуальные лимиты смотри на странице тарифов GitHub)
  • Claude Code и worktrees — code.claude.com/docs/en/worktrees
  • GitHub CLI (gh) — управление Pull Requests и Actions из терминала — cli.github.com
  • Skill: superpowers:using-git-worktrees — расширенное руководство по паттернам с worktrees

Ключевые выводы

Worktree — это не магия. Это просто несколько папок на одном репозитории. Сила в том что каждый агент работает в своей изолированной папке одновременно. GitHub Actions — твой бесплатный QA-отдел. Один раз настроил — тесты бегут сами при каждом пуше. Параллельная разработка с агентами — это не будущее, это доступно прямо сейчас с git worktree add.


Связанные уроки

  • Команды агентов: worktrees + суб-агенты = каждый агент работает в своём worktree параллельно
  • Headless и CI/CD: GitHub Actions автоматически запускают тесты при пуше из любого worktree

Что дальше

→ Headless и CI/CD: как запускать Claude Code в автоматических сценариях без человека

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс