Git Worktrees
VibeOS часто используется в больших, долгоживущих репозиториях. Когда вам нужно:
- Запускать несколько агентов параллельно в одном проекте, или
- Держать экспериментальные рефакторинги изолированными от основной ветки,
Worktrees в Git — это самый безопасный способ дать каждому агенту собственную копию без дублирования всего репозитория.
Эта страница показывает, как объединить worktrees с VibeOS, чтобы каждый сеанс имел чистую, изолированную рабочую директорию.
Зачем использовать Worktrees с VibeOS?
VibeOS считает текущую рабочую директорию корнем проекта:
- CLI: директория, в которой вы запускаете
vibeosилиvibeos chat - Шлюзы обмена сообщениями: директория, заданная
terminal.cwdв~/.vibeos/config.yaml
Если вы запускаете несколько агентов в одной и той же копии, их изменения могут мешать друг другу:
- Один агент может удалить или перезаписать файлы, которые использует другой.
- Становится сложнее понять, какие изменения относятся к какому эксперименту.
С worktrees каждый агент получает:
- Собственную ветку и рабочую директорию
- Собственную историю Checkpoint Manager для
/rollback
См. также: Checkpoints и /rollback.
Быстрый старт: создание Worktree
Из основного репозитория (содержащего .git/) создайте новый worktree для ветки с функцией:
# Из корня основного репозитория
cd /path/to/your/repo
# Создайте новую ветку и worktree в ../repo-feature
git worktree add ../repo-feature feature/vibeos-experiment
Это создаст:
- Новую директорию:
../repo-feature - Новую ветку:
feature/vibeos-experiment, извлечённую в этой директории
Теперь вы можете перейти в новый worktree и запустить там VibeOS:
cd ../repo-feature
# Запустите VibeOS в worktree
vibeos
VibeOS будет:
- Считать
../repo-featureкорнем проекта. - Использовать эту директорию для файлов контекста, правок кода и инструментов.
- Использовать отдельную историю контрольных точек для
/rollback, ограниченную этим worktree.
Запуск нескольких агентов параллельно
Вы можете создать несколько worktrees, каждый со своей веткой:
cd /path/to/your/repo
git worktree add ../repo-experiment-a feature/vibeos-a
git worktree add ../repo-experiment-b feature/vibeos-b
В отдельных терминалах:
# Терминал 1
cd ../repo-experiment-a
vibeos
# Терминал 2
cd ../repo-experiment-b
vibeos
Каждый процесс VibeOS:
- Работает в своей ветке (
feature/vibeos-avsfeature/vibeos-b). - Записывает контрольные точки под другим хешем теневого репозитория (производным от пути worktree).
- Может использовать
/rollbackнезависимо, не влияя на другой.
Это особенно полезно, когда:
- Выполняются пакетные рефакторинги.
- Опробуются разные подходы к одной задаче.
- Сочетаются сеансы CLI и шлюзов против одного вышестоящего репозитория.
Безопасная очистка Worktrees
Когда вы закончили эксперимент:
- Решите, сохранить или отбросить работу.
- Если хотите сохранить:
- Слейте ветку в основную ветку как обычно.
- Удалите worktree:
cd /path/to/your/repo
# Удалите директорию worktree и её ссылку
git worktree remove ../repo-feature
Примечания:
git worktree removeоткажется удалять worktree с незафиксированными изменениями, если вы не принудите это.- Удаление worktree не удаляет автоматически ветку; вы можете удалить или сохранить ветку с помощью обычных команд
git branch. - Данные контрольных точек VibeOS в
~/.vibeos/checkpoints/не удаляются автоматически при удалении worktree, но они обычно очень малы.
Лучшие практики
- Один worktree на эксперимент VibeOS
- Создавайте выделенную ветку/worktree для каждого существенного изменения.
- Это сохраняет диффы сфокусированными, а PR — небольшими и удобными для ревью.
- Называйте ветки по эксперименту
- Например,
feature/vibeos-checkpoints-docs,feature/vibeos-refactor-tests.
- Например,
- Фиксируйте изменения часто
- Используйте git-коммиты для ключевых этапов.
- Используйте контрольные точки и /rollback как страховочную сетку для правок, сделанных инструментами между ними.
- Избегайте запуска VibeOS из корня голого репозитория при использовании worktrees
- Вместо этого используйте директории worktree, чтобы у каждого агента была чёткая область действия.
Использование vibeos -w (режим автоматического Worktree)
VibeOS имеет встроенный флаг -w, который автоматически создаёт одноразовый git worktree с собственной веткой. Вам не нужно настраивать worktrees вручную — просто перейдите в свой репозиторий и выполните:
cd /path/to/your/repo
vibeos -w
VibeOS:
- Создаст временный worktree в
.worktrees/внутри вашего репозитория. - Извлечёт изолированную ветку (например,
vibeos/vibeos-<hash>`). - Запустит полный сеанс CLI внутри этого worktree.
Это самый простой способ получить изоляцию worktree. Вы также можете объединить его с одним запросом:
vibeos -w -z "Исправить проблему #123"
Для параллельных агентов откройте несколько терминалов и выполните vibeos -w в каждом — каждый вызов получает свой собственный worktree и ветку автоматически.
Собираем всё вместе
- Используйте git worktrees, чтобы дать каждому сеансу VibeOS собственную чистую копию.
- Используйте ветки, чтобы фиксировать высокоуровневую историю ваших экспериментов.
- Используйте контрольные точки +
/rollback, чтобы восстанавливаться после ошибок внутри каждого worktree.
Эта комбинация даёт вам:
- Надёжные гарантии, что разные агенты и эксперименты не мешают друг другу.
- Быстрые циклы итераций с лёгким восстановлением после неудачных правок.
- Чистые, удобные для ревью пул-реквесты.