Git worktree · Claude Code

Git worktree в Claude Code: 3 сессии сразу без конфликтов

Worktree - функция, которую Claude Code включает одной командой claude --worktree имя: она создаёт отдельную копию проекта на своей ветке, и правки одной задачи не затрагивают другую. Проверил лично на этой же машине 4 сентября 2026 года: создал такую копию, внёс в неё правку, и в основной папке проекта она не появилась - полная запись прогона ниже по статье

К концу статьи у тебя будет рабочий план: как за одну команду завести изолированную копию проекта под новую задачу, как вести две-три такие копии одновременно в разных окнах, на какие грабли натыкаются новички (общие настройки, файл с паролями, забытые копии на диске) и когда эта штука вообще не нужна. Если ты вообще не понимаешь, что такое Claude Code и с чего начать - сначала загляни в «Claude Code: что это и как работает», потом в «Что делать после установки Claude Code: первые шаги», а сюда вернись, когда программа уже стоит и открывается

Открой окно Claude Code в папке проекта и набери claude --worktree <любое-имя> - программа сама создаст отдельную копию папки на своей ветке и запустится внутри неё. Повтори команду с другим именем в другом окне - получишь вторую независимую сессию, которая не тронет файлы первой

Зачем вообще заводить отдельную копию проекта

Представь, что ты работаешь над одним и тем же документом в Word с другом одновременно: пока ты правишь абзац наверху страницы, друг правит абзац внизу той же страницы - и в какой-то момент чьи-то правки затираются или файл вообще ругается на конфликт. Ровно то же самое происходит, если вести две разные задачи в ОДНОЙ и той же папке проекта: пока Claude Code чинит одну ошибку, ты хочешь параллельно попросить его добавить новую функцию - и обе задачи трогают одни и те же файлы одновременно

Worktree решает это иначе, чем спор из-за одного документа: вместо одной общей папки под каждую задачу заводится СВОЯ копия, у неё своя ветка истории, и обе копии физически не пересекаются на диске. По официальному описанию Anthropic, это «отдельная рабочая папка со своими файлами и своей веткой, использующая ту же самую историю и то же общее хранилище проекта, что и твоя основная копия. Если каждую сессию Claude Code вести в своей копии, правки одной сессии никогда не задевают файлы другой - поэтому одна сессия может собирать новую функцию, пока вторая чинит ошибку»

Официальная документация Claude Code Docs про запуск параллельных сессий через worktree
Документация Anthropic «Run parallel sessions with worktrees», снята 04.09.2026: определение worktree и команда запуска

Слово «ветка», которое дальше пригодится, - это отдельная дорожка изменений внутри той же папки проекта: можно попробовать что-то на своей дорожке, не трогая основную, и потом либо перенести удачный результат в основную, либо просто закрыть дорожку, если не пригодилось. А сама папка проекта под управлением этой системы помнит все свои прошлые версии, как папка с фотографиями хранит и оригинал, и все отредактированные копии рядом. Если Claude Code ещё не установлен - шаг раньше, чем любые режимы и настройки, разобран в «Как установить Claude Code»

Шаг 1. Проверь, что в проекте уже есть хотя бы одна сохранённая версия

Прежде чем заводить копию, важно одно условие: worktree создаётся ОТ уже существующей записи истории проекта, а не с пустого места. По официальной документации, «каждая такая копия создаётся от существующей сохранённой версии, поэтому в проекте заранее должна быть хотя бы одна»

Что это тебе даёт: если ты только что создал папку проекта и ещё ни разу не сохранял в ней изменения, сначала нужно сохранить хотя бы одну версию (как первая точка сохранения игры, от которой можно будет начинать заново). Если проект уже какое-то время живёт и правки в нём уже сохранялись раньше - этот шаг у тебя уже выполнен, можно идти дальше. Если условие не выполнено, официальная документация честно называет ошибку: команда завершится строкой «Failed to resolve base branch», то есть дословно «не удалось определить, от какой версии начинать копию». Как вообще устроен весь путь от первой команды Claude Code до таких приёмов - в «7 уровнях Claude Code: от первой команды до команды агентов»

Шаг 2. Запусти Claude Code с именем своей копии

Открой Claude Code в папке своего проекта, как обычно, и вместо обычного запуска набери одну команду с именем задачи:

Куда нажать: в окне, где обычно пишешь запросы Claude Code, вместо простого запуска набери: claude --worktree feature-auth - слово feature-auth можно заменить любым коротким названием своей задачи

Что увидишь: Claude Code сообщит, что создаёт новую копию проекта, и следующий его ответ уже будет приходить из этой новой, отдельной папки - в самом начале работы это будет видно по новому пути к файлам, который Claude покажет в первых сообщениях

Что это даёт: с этого момента любая правка, которую сделает Claude в этой сессии, уедет в отдельную копию проекта, а не в основную папку

По официальной документации, копия создаётся по умолчанию в специальной служебной папке внутри проекта, на новой ветке с автоматическим именем: «по умолчанию копия создаётся в папке .claude/worktrees/<имя>/ внутри корня твоего проекта, на новой ветке под именем worktree-<имя>». Если имя вообще не указать, Claude Code сам придумает случайное вроде bright-running-fox

Один практический совет из той же документации: служебную папку копий стоит добавить в список файлов, которые система не отслеживает (файл .gitignore), иначе содержимое копий будет мозолить глаза в основном проекте как «незафиксированные файлы»

Собственная проверка прямо на рабочей машине автора этой статьи (04.09.2026): установленная версия Claude Code 2.1.251 реально поддерживает этот флаг, команда claude --help печатает строку про -w, --worktree [name] дословно - то есть это не гипотетическая функция из документации, а рабочая настройка на живом инструменте

Шаг 3. Открой вторую копию в другом окне для второй задачи

Здесь и раскрывается смысл заголовка статьи: одна команда работает не единожды, а столько раз, сколько у тебя параллельных задач

Куда нажать: открой ещё одно окно Claude Code (вторую вкладку или второй запуск программы) в той же папке проекта и набери ту же команду с ДРУГИМ именем: claude --worktree fix-bug-header

Что увидишь: появится вторая отдельная копия проекта - её путь на диске будет другим, а значит, файлы первой копии в ней физически не видны

Что это даёт: теперь у тебя две (или три - принцип тот же) независимые рабочие сессии, и правка в одной не может случайно затронуть файлы другой

По официальному описанию функции обзора всех таких параллельных сессий (claude agents), «каждый новый запрос, введённый в этом окне, запускает свою собственную новую сессию. Ввод следующего запроса и нажатие Enter запускает вторую сессию рядом с первой, а не отправляет продолжение в неё - так можно вести сразу несколько сессий параллельно». Здесь же дана честная оговорка про расход: «каждая сессия расходует твой лимит подписки отдельно от других, поэтому перед запуском сразу многих стоит свериться с ограничениями»

Официальная документация Claude Code Docs про обзор параллельных фоновых сессий agent view
Документация Anthropic «Agent view», снята 04.09.2026: запуск нескольких параллельных сессий и их независимый расход лимита

Своя проверка: создал демонстрационный проект на этой же машине, сохранил первую версию, потом той же командой, что использует Claude Code внутри, завёл вторую копию на отдельной ветке и сделал в ней правку. Результат: в основной папке проекта новый файл не появился ни разу - изоляция сработала на практике, а не только по описанию. Программа при этом сама подтвердила создание новой копии строкой «Preparing worktree (new branch 'feature-auth')». Полный дословный протокол этого прогона (13 действий подряд) сохранён рядом со страницей

Что новая копия НЕ получает по умолчанию

У свежей копии нет тех файлов, которые система специально не отслеживает - например, файла с личными паролями или ключами доступа к сервисам. Это может неожиданно сломать вторую сессию, если она не сможет подключиться к тем же сервисам, что и первая

По официальной документации, для этого есть отдельный файл-список: «поскольку копия - это свежая версия проекта, неотслеживаемые файлы вроде файла с паролями из основной папки в ней отсутствуют. Чтобы копировать их автоматически при создании каждой новой копии, добавь файл .worktreeinclude в корень проекта». В этот файл построчно вписываются имена файлов, которые нужно копировать в каждую новую копию - сам список пишется в том же формате, что обычный .gitignore

Почему вторая копия иногда «не запускается»

Отдельно стоит понимать: сами вспомогательные программы, которые нужны проекту для работы (то, что разработчики называют библиотеками - готовые чужие кусочки кода, встроенные в проект), копия НЕ наследует - это свежий проект, и их нужно установить заново внутри новой копии (или попросить об этом саму сессию Claude Code). Именно здесь чаще всего спотыкаются новички: открывают вторую копию, а она «не запускается», хотя причина простая - установка ещё не сделана внутри неё. Если Claude Code вообще ещё не подключён к внешним сервисам, с чего начать - в «Claude MCP: как подключить свой первый сервис за 10 минут»

Сколько места занимают копии на диске

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

Что общее между копиямиЧто своё у каждой копии
история всех прошлых версий проектафайлы рабочей версии на этой ветке
настройки git самого проектавспомогательные программы, установленные внутри
одобренные ранее разрешения на командыфайл с паролями, если он не в .worktreeinclude

Таблица прокручивается вбок →

Практический вывод: две-три копии для активных задач - это нормально, а вот десяток забытых копий месячной давности стоит убрать - каждая тянет своё место на диске, и вспомнить, что где было, становится сложнее. Именно поэтому шаг 4 этой статьи (уборка за собой) - не формальность, а привычка, которая экономит место уже через пару недель работы

Грабли, на которых спотыкаются новички

Что произошлоЧто это значитЧто делать
Вторая копия открылась, но не запускаетсявспомогательные программы проекта не наследуются автоматически - копия свежаяпопросить Claude Code установить их заново внутри новой копии, либо сделать это самому
Файл с паролями пропал во второй копиинеотслеживаемые файлы git по умолчанию не копируютсязавести файл .worktreeinclude в корне проекта со списком нужных файлов
Команда завершилась ошибкой про базовую веткув проекте ещё нет ни одной сохранённой версиисохранить хотя бы одну версию проекта, потом повторить команду
Копия долго лежит на диске без делаClaude Code не удаляет копии автоматически, пока в них есть несохранённые правкисохранить правки в основную историю, потом выйти из сессии - программа сама предложит убрать копию
Одна и та же ветка не открывается в двух копиях сразуу git есть ограничение - одну и ту же ветку нельзя проверить одновременно в двух разных копияхкаждой новой копии давать своё, новое имя ветки, как в примерах выше

Таблица прокручивается вбок →

Последняя строка таблицы - прямая цитата ограничения из официальной документации самого git: «по умолчанию команда добавления копии отказывается создавать новую, если запрашиваемая ветка уже открыта в другой копии». Если Claude Code ещё не установлен на компьютере с Windows - отдельная короткая инструкция и разбор частых ошибок лежат в «Claude Code Windows: одна команда установки, разбор 7 ошибок»

Официальная документация Git про команду git worktree, формат записи для создания и удаления копий
Официальная документация «git-worktree», снята 04.09.2026: команды создания, удаления и списка копий, ограничение на одну ветку в двух копиях

Шаг 4. Убери за собой, когда задача закрыта

Куда нажать: когда работа в копии закончена, просто выйди из сессии Claude Code как обычно (командой выхода)

Что увидишь: если в копии остались несохранённые правки, Claude Code спросит, оставить папку на будущее или убрать её вместе с веткой; если правок не осталось, программа уберёт пустую копию сама

Что это даёт: диск не захламляется забытыми копиями, а нужная работа при этом никуда не пропадает

По официальной документации, поведение при выходе разное в зависимости от того, есть ли в копии незавершённая работа: «если в копии нет изменений, Claude Code сам убирает её и её ветку - для сессии без имени. Именованная сессия сначала спросит, чтобы можно было оставить копию на будущее» и «если в копии есть работа, Claude Code спросит, оставить её или убрать. Оставить - значит сохранить папку и ветку, чтобы вернуться позже. Убрать - значит удалить и папку, и ветку вместе со всей работой в них»

Если правки уже закреплены и перенесены в основной проект, безопасно выбирать удаление копии: сама история проекта при этом никуда не денется, потому что и копия, и основная папка используют одну и ту же общую историю на диске. Как настроить Claude Code так, чтобы он вообще запоминал контекст твоего проекта между сессиями - в «CLAUDE.md: как настроить память Claude Code»

Как назвать копию, чтобы не запутаться

Имя копии - это то же самое имя, что попадёт в название её ветки, поэтому короткое и понятное название задачи экономит время уже через день работы. Плохая привычка - называть копии подряд («копия1», «копия2»): через неделю параллельной работы над тремя-четырьмя задачами вспомнить, что где лежит, станет сложно

Рабочий принцип простой: имя копии должно отвечать на вопрос «что я тут делаю», а не «когда я это создал». Имя вроде fix-bug-header или feature-auth через месяц всё ещё понятно с первого взгляда, а worktree3 уже нет

Плохое имя копииПочему плохоХорошее имя копии
worktree1, worktree2не понятно, что за задача, через неделю придётся вспоминатьfix-bug-header
test, tempзвучит как одноразовое, но копии живут неделямиfeature-auth
проект-новыйрусские буквы и пробелы иногда ломают имя веткиnew-onboarding

Таблица прокручивается вбок →

Что происходит с общей историей, когда копий несколько

Одна деталь снимает главный страх новичка перед этой функцией: копии не создают несколько разных версий проекта, которые потом придётся сводить вручную. Все копии читают одну и ту же общую историю изменений - как несколько человек, читающих одну и ту же книгу с разных закладок. Пока правки одной копии не перенесены в основную ветку, она их просто не видит, но как только перенос происходит, вся история остаётся цельной и непротиворечивой

Когда worktree не нужен

Не любая параллельная работа требует отдельной копии проекта. Если задачи связаны между собой (например, ты меняешь один и тот же файл в двух шагах подряд) - разумнее вести это как одну сессию по порядку, а не заводить две изолированные копии, между которыми потом придётся сводить результат вручную

Отдельная функция, которую легко перепутать с worktree - параллельные ПОМОЩНИКИ внутри одной задачи (subagents): это не копии проекта на диске, а несколько версий самого Claude, которые одновременно разбирают куски ОДНОЙ и той же задачи внутри одного и того же разговора. Разница разобрана отдельно в «Агенты Claude вышли из терминала: полный разбор для новичка» - там же честно сказано про цену: параллельные помощники расходуют «примерно в семь раз больше токенов, чем один разговор», поэтому имеет смысл сравнить, что решает именно твою задачу - копия проекта под независимые дела или несколько помощников под одно общее дело

Ещё один соседний механизм - когда Claude сам решает, разбивать ли большую задачу на план из десятков помощников (режим ultracode). Это тоже не про копии проекта, а про автоматическое планирование внутри одной сессии - полный разбор в «Ultracode в Claude Code: 2 способа включить режим workflow». Если параллельная работа в принципе кажется медленной и хочется разобраться с настройками вообще, а не только с worktree - есть отдельный разбор «Как усилить Claude в 10 раз: 7 настроек вместо промптов»

Что ещё почитать про Claude Code

Источники

Все страницы открыты живым браузером 4 сентября 2026 года, плюс собственный прогон команд на этой же машине Голые адреса тех же документов: code.claude.com/docs/en/common-workflows, code.claude.com/docs/en/worktrees, code.claude.com/docs/en/agent-view, code.claude.com/docs/en/tools-reference, git-scm.com/docs/git-worktree

Памятка: git worktree за 5 минут

Пять строк, которые закрывают путь от «что это такое» до первой рабочей копии

Сохрани себе

  • Понял: worktree = отдельная копия проекта на своей ветке, для параллельных НЕЗАВИСИМЫХ задач
  • В проекте есть хотя бы одна сохранённая версия - иначе команда не сработает
  • Знаю команду: claude --worktree <имя> - и что для второй задачи нужно другое имя
  • Понимаю, что вспомогательные программы в новой копии нужно ставить заново
  • Не путаю worktree с параллельными помощниками (subagents) - это разные механизмы

Порог входа

Разбор приёма - бесплатно, следующий шаг - тоже

Всё, что нужно, чтобы завести свою первую изолированную копию проекта и вести в ней параллельную задачу, ты только что прочитал бесплатно: зачем это нужно, как запустить и на каких граблях не споткнуться. Следующий шаг - три дня разбора и сборки рабочего порядка вокруг твоих же инструментов - тоже стоит ровно ноль

Забрать путёвку в ИИ-Лагерь

Заявка в закрытый канал, одобряю сразу. Бот сам напишет первым и покажет, как забрать три дня Лагеря. Бесплатно

Частые вопросы

Что такое git worktree простыми словами?

Это отдельная копия папки проекта на своей ветке истории, которая физически не пересекается с основной папкой. Правки в одной копии не задевают файлы в другой, поэтому можно параллельно вести две-три разные задачи

Как включить worktree в Claude Code?

Команда claude --worktree и любое короткое имя своей задачи. Программа сама создаст отдельную копию проекта и запустится внутри неё. Если Claude Code ещё не установлен - с этого стоит начать, инструкция в «Claude Code: что это и как работает»

Можно ли вести три сессии сразу?

Да, принцип не ограничен двумя копиями - каждая новая команда с новым именем создаёт ещё одну независимую копию в отдельном окне

Почему во второй копии не работают программы, которые были в первой?

Копия - это свежая версия проекта, и вспомогательные программы в ней нужно установить заново. Автоматически переносятся только файлы, специально перечисленные в файле .worktreeinclude. Общий разбор настройки Claude Code с нуля - в «Настройке Claude Code бесплатно: запуск с нуля и выбор модели по ОЗУ»

Чем worktree отличается от параллельных помощников (subagents)?

Worktree создаёт отдельные КОПИИ ПРОЕКТА на диске для независимых задач. Параллельные помощники - это несколько версий самого Claude, которые одновременно решают куски ОДНОЙ задачи внутри одного и того же разговора, и это заметно дороже по расходу лимита. Полный разбор агентов - в «Агентах Claude вышли из терминала»

Что будет с копией, когда задача закончена?

Если правки уже сохранены в основную историю проекта, копию можно удалить - сама история никуда не денется, потому что копия и основная папка используют одну и ту же общую историю на диске