Worktree
Worktree извлекает другую ветку того же репозитория в отдельную папку. Если у каждого агента свой worktree, несколько агентов могут одновременно работать над одним проектом, не правя файлы друг друга. PATerminal создаёт worktree и открывает его как новую сессию за один шаг.
Актуально для PATerminal v1.8.3
Создание worktree
- В панели внутри репозитория нажмите Worktree в заголовке панели (кнопка есть и в списке веток).
- В разделе Создать из выберите Ветка или Pull request.
- В поле Базовая ветка выберите основу (или pull request) и введите имя в поле Новая ветка.
- Выберите, Где разместить, и при желании добавьте заметку к сессии.
- Нажмите Создать. В папке worktree откроется новая сессия.
Где размещаются worktree
- Вне репозитория (по умолчанию)
- Worktree собираются в папке с именем репозитория, например
~/worktrees/acme-app/feature-login. Можно указать абсолютный путь,~или... Ваш.gitignoreне затрагивается. - Внутри репозитория
- Worktree размещаются в папке внутри репозитория. Если эта папка ещё не игнорируется, она добавляется в корневой
.gitignore(как обычное изменение исходников).
Копирование игнорируемых файлов
В новом worktree нет ни одного файла, игнорируемого Git, поэтому запустить проект в нём обычно сразу не получится. С параметром Игнорируемые файлы: Скопировать из этого checkout (по умолчанию) PATerminal копирует такие файлы, как .env, node_modules и .venv, из текущей рабочей копии в новый worktree, показывая индикатор прогресса. Выберите Не копировать, чтобы пропустить этот шаг.
Worktree из pull request’а
Выберите Pull request в качестве источника, чтобы получить список открытых pull request’ов (через ваш gh). PATerminal создаст worktree на ветке PR и откроет его как сессию — идеально, чтобы проверить или исправить PR, пока основная рабочая копия продолжает работать. Существующий worktree для этой ветки используется повторно.
Управление worktree
Список worktree в окне Git показывает каждый worktree с его веткой и состоянием (текущий, основной, заблокирован, отсутствует). Удалите один или выберите несколько и нажмите Удалить выбранные. При удалении worktree его ветка сохраняется; основной и текущий worktree удалить нельзя. Если Git отказывает из-за локальных изменений, предлагается Удалить принудительно.
Параметры worktree по умолчанию
В разделе «Настройки» → Расположение worktree по умолчанию задаются расположение по умолчанию и то, копировать ли игнорируемые файлы. Включите Automatically fill in the branch name, чтобы получать имя из даты, времени и короткого случайного суффикса. Эти параметры действуют и тогда, когда worktree создаётся из issue или парным режимом.
Остались вопросы?
Загляните в раздел вопросов и ответов или напишите нам: укажите ОС, версию PATerminal и что вы уже пробовали. Мы отвечаем на каждое письмо.