До основного вмісту
Vibe Console

Git worktree для Claude Code і Codex: практичний посібник

Git worktree дає змогу запускати Claude Code, Codex та інших ШІ-агентів у різних гілках одночасно й без конфліктів: команди, налаштування, пастки, прибирання.

Nes

Nes

@nesdesignco

· 4 хв читання

Схема: гілка main і два git worktree — ../atlas-auth, де працює Claude Code, і ../atlas-search, де працює Codex

Якщо в одному репозиторії у вас працює більше ніж один агент, вам потрібні git worktree. Вони дають кожному агенту власну гілку у власній теці, щоб усі працювали одночасно й не наступали один одному на п’яти.

Що таке git worktree?

Звичайний клон має одне робоче дерево: одна тека, одна гілка в checkout. Worktree — це додаткова робоча тека, прив’язана до того самого репозиторію, але з іншою гілкою. Усі worktree ділять одну історію .git, тож коміт, зроблений в одному, одразу видно в інших, але файли в них окремі.

Для агентів це означає:

  • Claude Code може редагувати файли в ../atlas-auth на гілці feat/auth
  • Codex може редагувати файли в ../atlas-search на гілці feat/search
  • А ви тим часом переглядаєте код і запускаєте застосунок в основній теці на main

Ніхто не перезаписує чужих змін.

Окремий worktree на кожну задачу

З основної теки репозиторію:

# new branch + new folder next to the repo
git worktree add ../atlas-auth -b feat/auth
 
# another one, starting from a specific branch
git worktree add ../atlas-search -b feat/search origin/main
 
# see them all
git worktree list

Потім запустіть агента в кожній теці:

cd ../atlas-auth && claude
cd ../atlas-search && codex

Називайте теки worktree за задачею. За місяць atlas-auth вам щось скаже, а wt2 — ні.

Або нехай worktree створить Claude Code

Свіжі версії Claude Code вміють створювати worktree самі:

claude --worktree feature-auth   # or: claude -w feature-auth

Ця команда створює worktree в .claude/worktrees/feature-auth/ на новій гілці worktree-feature-auth і запускає в ньому Claude. Виконайте її з іншим ім’ям у другому терміналі — і матимете другу ізольовану сесію. Також можна посеред сесії попросити Claude «work in a worktree».

Кілька деталей із документації Claude Code про worktree:

  • Додайте .claude/worktrees/ у .gitignore, щоб файли worktree не з’являлися як untracked в основному checkout.
  • У репозиторії має бути хоча б один коміт.
  • Коли ви виходите, Claude видаляє чистий worktree (для іменованого — спершу запитавши), а якщо в worktree є зміни, запитує, чи його залишити.
  • Файл .worktreeinclude перелічує ігноровані git файли, наприклад .env, які треба копіювати в кожен новий worktree.

Використовуйте claude --worktree, коли над задачею працює лише Claude Code. Звичайний git worktree add беріть, коли хочете самі вибрати теку й назву гілки або запустити у worktree Codex чи іншого агента.

Підготуйте worktree до старту агента

Новий worktree містить лише файли, які відстежує git. Перш ніж віддати його агенту:

  • Встановіть залежності. node_modules, віртуальні оточення й теки збірки не спільні. Виконайте npm install (або аналог) у кожному worktree. Менеджери пакетів зі спільним сховищем, як-от pnpm, роблять це швидким.
  • Скопіюйте невідстежувану конфігурацію. Файли .env і локальні налаштування зазвичай в ігнорі git, тож скопіюйте те, що потрібно для запуску застосунку. З claude --worktree натомість перелічіть їх у .worktreeinclude.
  • Використовуйте різні порти. Два dev-сервери не можуть слухати порт 3000 одночасно. Запустіть другий на іншому порту, наприклад PORT=3001 npm run dev.
  • Діліться інструкціями через відстежувані файли. CLAUDE.md і AGENTS.md лежать у git, тож кожен worktree отримує їх автоматично.

Перевірка, злиття і прибирання

Коли агент закінчив:

# in the worktree: check the work
git diff main...feat/auth
npm test
 
# in the main folder: merge
git merge feat/auth
 
# remove the worktree folder and its registration
git worktree remove ../atlas-auth
git branch -d feat/auth

Якщо ви видалили теку worktree вручну, виконайте git worktree prune, щоб прибрати застарілий запис.

Типові пастки

  • «Branch is already checked out». Гілку можна мати в checkout лише в одному worktree одночасно. Створюйте нову гілку для кожного worktree.
  • Забуті worktree. Старі worktree тримають гілки живими й займають місце на диску. Час від часу виконуйте git worktree list.
  • Незакомічені зміни під час видалення. git worktree remove відмовляється працювати, якщо у worktree є зміни. Спершу закомітьте або сховайте їх у stash, або додайте --force, якщо справді хочете їх викинути.
  • Агенти редагують основну теку. Запускайте кожного агента зсередини його теки worktree, а не з кореня репозиторію.

Worktree у Vibe Console

Vibe Console тримає worktree на виду, поки в них працюють агенти:

  • Вкладка Worktrees у керуванні кодом (⌘⇧G) показує кожен worktree з його гілкою, позначаючи основний і всі detached checkout.
  • Перетягніть worktree на термінал, щоб вставити його шлях, а потім запустіть там агента через ⌘K.
  • Вилучити worktree прибирає його, коли робота завершена, і запитує Вилучити примусово, якщо в ньому ще є локальні зміни. Основний worktree захищено.
  • Сітка вміщає до дев’яти терміналів, тож агент кожного worktree може мати власну панель. Див. паралельний запуск агентів.

Створюйте worktree через git worktree add або claude --worktree, як показано вище; обидва варіанти одразу з’являються в списку.

Часті запитання

Чи займають worktree багато місця на диску?

Лише під файли в checkout і те, що ви в них встановите. Історія git спільна.

Що краще: worktree чи окремі клони?

Worktree. Вони ділять одну історію, тож гілки й коміти миттєво доступні всюди, а прибирання — одна команда.

Чи можуть два агенти ділити один worktree?

Лише якщо файли редагує щонайбільше один із них. Агент-рецензент, який тільки читає, може ділити worktree з агентом, що пише код.

Спробуйте безкоштовно 14 днів: завантажити Vibe Console.

Зберіть усіх агентів в одному вікні.

14 днів безкоштовно. Далі $4.99 на місяць або $39.99 на рік.