00:00:00Claude Code получил безумное количество
00:00:02обновлений за последнее время: от поддержки SSH в Claude Desktop,
00:00:05предпросмотра приложений и интеграции с GitHub
00:00:07до простого режима в терминале,
00:00:09который убирает навыки, плагины и кастомные инструменты,
00:00:11облегчая выполнение базовых задач.
00:00:13Но самое масштабное обновление — это нативная поддержка work tree,
00:00:16что позволяет вашим агентам работать над несколькими функциями
00:00:18или исправлениями багов изолированно,
00:00:20без необходимости что-либо настраивать вручную.
00:00:23Но не был ли этот релиз поспешным,
00:00:25учитывая, что многие разработчики уже столкнулись с проблемами?
00:00:28Подписывайтесь, и давайте во всем разберемся.
00:00:30Использование рабочих деревьев Git с ИИ-агентами — идея не новая.
00:00:33На самом деле, в Claude Desktop это есть уже какое-то время,
00:00:35и существует множество плагинов и инструментов с этой функцией,
00:00:37например, Claude Squad, о котором мы уже снимали видео.
00:00:41Но лично я не пользовался этим раньше,
00:00:43потому что ручная настройка создает лишнюю когнитивную нагрузку,
00:00:46и я надеюсь, что эта новая фича в Claude Code
00:00:49сильно упростит мне жизнь.
00:00:50Давайте попробуем.
00:00:51Итак, вот простое приложение для списка дел на React, созданное Claude.
00:00:54Честно говоря, я бы не стал писать такое приложение
00:00:56ни для каких целей, кроме тестирования.
00:00:58Как бы то ни было, я хочу добавить переключатель темной темы,
00:01:01потому что этот белый экран меня слепит.
00:01:02Также я хочу добавить сохранение данных
00:01:04в local storage, чтобы список не пропадал при обновлении страницы.
00:01:07И еще мне нужна возможность редактировать задачи.
00:01:10Обычно я бы запихнул все эти задачи в один промпт:
00:01:12темная тема, local storage
00:01:14и редактирование дел.
00:01:16Проблема в том, что если в одной из функций будет баг,
00:01:20мне придется возиться со всем кодом сразу,
00:01:22задерживая релиз остальных исправных фич,
00:01:25так как всё находится в одном PR или одной ветке.
00:01:28Но с рабочими деревьями (work trees)
00:01:28я могу работать над этими фичами в разных ветках
00:01:31одновременно на своей локальной машине
00:01:33без каких-либо ручных манипуляций.
00:01:35И если возникнет проблема с одной функцией,
00:01:37я смогу отправить две другие,
00:01:39а над проблемной продолжить работу в отдельной ветке.
00:01:41Позвольте показать, как это делается.
00:01:42Если я запущу Claude Code с флагом -W,
00:01:45это создаст рабочее дерево
00:01:47со случайным именем, которое выберет Claude.
00:01:49Подождите, Lacan?
00:01:50Ладно.
00:01:52Но если я хочу сам задать имя для work tree,
00:01:54мне нужно указать его сразу после флага -W,
00:01:56вот здесь.
00:01:58Это создает новое рабочее дерево,
00:02:00а также новую ветку,
00:02:02при этом не удаляя предыдущее созданное дерево.
00:02:05Имейте это в виду,
00:02:06если вы начнете создавать много временных деревьев.
00:02:08В директории .claude вашего проекта, в папке worktrees,
00:02:11мы можем найти наше дерево
00:02:13и увидеть все связанные с ним файлы кода.
00:02:15Заметьте, рабочие деревья работают только в том случае,
00:02:16если в проекте инициализирован git
00:02:18и вы сделали хотя бы один коммит.
00:02:20Теперь я могу реализовать все запланированные функции
00:02:22в разных рабочих деревьях.
00:02:24Итак, работа над тремя задачами завершена,
00:02:26и мы видим, что темная тема работает.
00:02:29В этой версии темной темы нет,
00:02:31зато я могу редактировать задачи.
00:02:32Добавлю новую и изменю её здесь.
00:02:35А вот в версии с local storage возникла проблема,
00:02:38но в этом и прелесть рабочих деревьев —
00:02:40я вижу, что две другие функции работают отлично.
00:02:43Так что я могу закоммитить их или создать pull request,
00:02:44а затем сфокусироваться на этой ошибке,
00:02:46используя отдельную сессию Claude Code
00:02:48специально для исправления.
00:02:49Когда работа с деревом закончена,
00:02:51я могу либо оставить его, чтобы вернуться позже,
00:02:53либо удалить его из системы.
00:02:54Если я решу его оставить,
00:02:55я смогу вернуться ровно в то же состояние,
00:02:58указав имя дерева, как вы видите здесь.
00:03:00Я даже могу возобновить сессии из текущего дерева
00:03:03или нажать Control + W, чтобы увидеть все сессии в проекте.
00:03:06Хотя я до конца не уверен,
00:03:07как именно определяется текущая сессия,
00:03:08поскольку сейчас я нахожусь в ветке main.
00:03:11Кстати, о текущей сессии:
00:03:12если вы хотите работать прямо из директории дерева,
00:03:15вы можете либо перейти туда вручную
00:03:16через cd .claude/worktrees и так далее,
00:03:19либо запустить команду с флагом --tmux,
00:03:21который сразу перенесет вас в нужную папку.
00:03:23И если я открою новую панель,
00:03:26вы увидите, что я нахожусь в этом рабочем дереве
00:03:27и могу просматривать файлы, специфичные именно для него.
00:03:30Но самое крутое в рабочих деревьях —
00:03:31это поддержка субагентов.
00:03:33Это значит, что я могу запустить разных субагентов
00:03:35для одновременной работы над фичами в разных ветках
00:03:38в рамках одной сессии Claude Code.
00:03:40И если вы хотите поддержку деревьев в кастомных субагентах,
00:03:42чтобы субагент автоматически создавал себе окружение,
00:03:45вам нужно просто добавить “isolation: worktree”
00:03:48в метаданные (front matter), и Claude сделает всё остальное.
00:03:50В целом, эта функция меня очень впечатлила,
00:03:52и я определенно
00:03:54собираюсь использовать её чаще.
00:03:55Особенно учитывая новые хуки для рабочих деревьев,
00:03:57которые позволяют использовать их без git (например, в SVN, jiu-jitsu),
00:04:00а также дают возможность
00:04:02автоматически запускать скрипты
00:04:04при создании нового рабочего дерева.
00:04:05К сожалению, похоже, что у многих пользователей
00:04:08возникли проблемы с этой функцией
00:04:09после последних обновлений Claude Code,
00:04:11вероятно, из-за ошибки в одном из флагов функций.
00:04:13К счастью, можно заставить Claude Code починить
00:04:17собственный бинарный файл в качестве временной меры,
00:04:18но, надеюсь, команда скоро выпустит полноценное исправление,
00:04:21чтобы все могли оценить эту крутую возможность.
00:04:24Раз уж мы заговорили о крутых инструментах,
00:04:25если вы React-разработчик и ищете CLI-утилиту
00:04:28для автоматического поиска антипаттернов в коде,
00:04:31посмотрите видео от Андриса,
00:04:33в котором он разбирает инструмент React Doctor.