Рабочие деревья Git

Агент Hermes часто используется в крупных и долгоживущих репозиториях. Когда вы хотите:

Git worktrees — это самый безопасный способ предоставить каждому агенту собственную проверку без дублирования всего репозитория.

На этой странице показано, как объединить рабочие деревья с Hermes, чтобы каждый сеанс имел чистый изолированный рабочий каталог.

Зачем использовать рабочие деревья с Hermes?

Hermes рассматривает текущий рабочий каталог как корень проекта:

Если вы запустите несколько агентов в одной кассе, их изменения могут мешать друг другу:

Благодаря рабочим деревьям каждый агент получает:

См. также: Проверочные точки и /rollback.

Быстрый старт: создание рабочего дерева

Из вашего основного репозитория (содержащего .git/) создайте новое рабочее дерево для ветки функций:

# From the main repo root
cd /path/to/your/repo

# Create a new branch and worktree in../repo-feature
git worktree add../repo-feature feature/hermes-experiment

Это создает:

Теперь вы можете перейти в новое рабочее дерево и запустить там Hermes:

cd../repo-feature

# Start Hermes in the worktree
hermes

Гермес будет:

Параллельный запуск нескольких агентов

Вы можете создать несколько рабочих деревьев, каждое со своей веткой:

cd /path/to/your/repo

git worktree add../repo-experiment-a feature/hermes-a
git worktree add../repo-experiment-b feature/hermes-b

В отдельных терминалах:

# Terminal 1
cd../repo-experiment-a
hermes

# Terminal 2
cd../repo-experiment-b
hermes

Каждый процесс Гермеса:

This is especially useful when:

Безопасная очистка рабочих деревьев

Когда вы закончите эксперимент:

  1. Решите, оставить работу или отказаться от нее.
  2. Если вы хотите сохранить его:
  3. Объедините ветку с основной веткой, как обычно.
  4. Удалите рабочее дерево:
cd /path/to/your/repo

# Remove the worktree directory and its reference
git worktree remove../repo-feature

Примечания:

Лучшие практики

Использование hermes -w (автоматический режим рабочего дерева)

Hermes имеет встроенный флаг -w, который автоматически создает одноразовое рабочее дерево git с собственной веткой. Вам не нужно настраивать рабочие деревья вручную — просто перейдите в репозиторий и запустите:

cd /path/to/your/repo
hermes -w

Гермес будет:

Это самый простой способ обеспечить изоляцию рабочего дерева. Вы также можете объединить его с одним запросом:

hermes -w -z "Fix issue #123"

Для параллельных агентов откройте несколько терминалов и запустите в каждом hermes -w — каждый вызов автоматически получает собственное рабочее дерево и ветвь.

Собираем все вместе

Эта комбинация дает вам:

Developing the UI surfaces across worktrees

Поверхности TypeScript (ui-tui/, apps/desktop/) нуждаются в node_modules, который новый npm ci для каждого рабочего дерева дублирует в каждой ветке. Если вы взломали TUI или настольное приложение из нескольких рабочих деревьев, см. TUI и рабочий стол из рабочих деревьев для получения информации о помощниках htui/hgui, которые разделяют одну установку по символической ссылке.