# Claude Code через Git: 7 шагов в 2026 году для передачи контекста между сессиями

> Claude Code не переносит историю чата одним сообщением. Показываю, как связать resume, Git, файлы состояния и короткий handoff.

Источник: https://vibeceh.ru/guides/claude-code-peredacha-zadachi-mezhdu-sessiyami-bez-poteri-konteksta
Автор: Сергей Мазур · опубликовано 2026-08-13

Если ищешь `claude code git`, начни с фиксации состояния: закоммить изменения, запиши прогресс и оставь следующей сессии короткое сообщение с файлами, решением и ближайшей проверкой. Такой порядок помогает сохранить рабочий контекст, но не переносит автоматически историю, права и состояние инструментов. Для продолжения той же беседы используй `resume`. Cross-session messaging подходит для передачи факта или статуса между независимыми сессиями.

## Что именно нужно сохранить, чтобы Claude Code продолжил незавершённую задачу?

Для продолжения той же беседы используй `resume`: он возвращает исходную историю разговора. Сообщение между независимыми сессиями переносит только текст. Файлы, разрешения, состояние инструментов и автоматически выполненную работу не переходят. Их надо сохранить отдельно через Git, файл прогресса, список задач и тесты.

![Кот у карточек сравнивает resume, Git и Messaging для передачи контекста.](https://s3.regru.cloud/crossmark/statejnik/images/guides/claude-code-peredacha-zadachi-mezhdu-sessiyami-bez-poteri-konteksta/kadr-1.webp)

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

Если старая сессия просто упёрлась в лимит окна или закрылась, а задачу надо продолжить в том же разговоре, нужен `resume`. Новая сессия получает историю исходной беседы вместе с её контекстом.

Cross-session messaging решает другую задачу. Одна сессия сообщает другой найденную поломку, принятое решение или статус тестов. Это короткий текстовый канал для передачи факта или статуса между сессиями.

> Документация описывает сообщение как текст, который одна сессия передаёт другой; история разговора и файлы не передаются.
> - [Официальная документация Claude Code, Cross-session messaging](https://code.claude.com/docs/en/cross-session-messaging)

Выбирай так:

| Механизм | Что переносит | Чего не переносит | Когда использовать |
| --- | --- | --- | --- |
| `resume` | Историю исходной беседы | Работу независимой сессии | Когда нужно продолжить тот же разговор |
| Git и файл состояния | Файлы, контрольную точку и план | Историю чата и локальные разрешения | Когда результат передаётся новой сессии |
| Messaging | Короткий текстовый факт или решение | Файлы, историю и права | Когда нужно быстро сообщить статус другой сессии |

Разрешения тоже не переходят. Если первая сессия могла выполнить действие, это не означает, что вторая получит те же права.

## Как передать незавершённую задачу через Git в новую сессию?

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

Я использую Git здесь для фиксации состояния. Он передаёт состояние файлов и оставляет след, который можно проверить.

Перед переключением сначала посмотри, что изменилось:

```bash
git status
git diff
```

После проверки зафиксируй результат:

```bash
git add .
git commit -m "Save progress on password reset"
```

Коммит даёт новой сессии точку отсчёта. Она может прочитать файлы, посмотреть историю и сверить результат тестами. Если правки остались только в незакоммиченном состоянии, следующая сессия получит менее ясную картину.

Порядок такой:

1. Убедись, что текущий кусок работы не сломан.
2. Запусти проверку, которая относится к этому куску.
3. Посмотри изменения через `git diff`.
4. Создай коммит с понятным сообщением.
5. Передай следующей сессии идентификатор коммита и ближайшую задачу. Такой handoff можно сверить с Git, а не восстанавливать по памяти.

Я бы не отправлял сообщение «продолжи проект». В нём нет контрольной точки. Лучше написать: «миграция сохранена в коммите, тесты проходят, следующий файл такой-то». Сам код лежит в Git, а смысл перехода лежит в коротком handoff.

## Как сохранить план Claude Code между сессиями?

План надо вынести за пределы окна контекста: в файл прогресса, список задач, чек-лист или scratchpad. Для сложной работы держи блоки `Done`, `Blocked`, `Next` и `Do not`. Следующая сессия читает запись, видит один ближайший проверяемый шаг и не пытается заново спроектировать весь проект.

![Собака одобряет файл прогресса с блоками Done, Blocked, Next и Do not.](https://s3.regru.cloud/crossmark/statejnik/images/guides/claude-code-peredacha-zadachi-mezhdu-sessiyami-bez-poteri-konteksta/kadr-2.webp)

План в переписке исчезает из практической работы, когда начинается новая сессия. Поэтому запрос `claude code plans` лучше закрывать внешним state-файлом, а не новым пересказом в чате. Даже если старая история доступна через `resume`, для долгой задачи полезнее иметь короткую внешнюю запись.

Подойдёт файл с таким содержанием:

```markdown
# Task state

## Done
- created password reset migration
- added reset token model
- unit tests pass

## Blocked
- email provider is not configured

## Next
- implement POST /auth/password-reset/confirm
- run integration tests

## Do not
- change the database schema
- replace the email provider
```

Блоки служат рабочими ориентирами. Они отвечают на четыре рабочих вопроса:

- что уже сделано;
- где работа остановилась;
- какой следующий кусок брать;
- какие решения нельзя самовольно менять.

Anthropic отдельно советует использовать чек-листы и scratchpad для сложных процессов. Внешний файл переживает завершение context window и не требует восстанавливать план по памяти.

Не превращай список в техническое задание на весь продукт. Чем крупнее следующий пункт, тем выше шанс, что агент снова начнёт делать всё сразу. Для `claude code switch` оставь один ближайший шаг, который можно проверить отдельно.

Запись «сделать авторизацию» ничего не говорит о работоспособности кода. Рядом с планом нужны Git-коммит и тест, иначе следующая сессия будет опираться на обещание, а не на проверяемое состояние.

## Как перенести договорённости из чата Claude Code в новую сессию?

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

Если ты ищешь, как перенести историю чата Claude Code в новую сессию, для полной беседы нужен `resume`. Короткое сообщение работает иначе. Запрос `claude code prompts` здесь полезно разделить на две части: что передать новой сессии и что попросить её проверить.

Хороший handoff отвечает на пять вопросов:

1. Что изменилось?
2. Где это лежит?
3. Какое решение принято?
4. Что делать дальше?
5. Чего не делать?

Пример:

Такое сообщение передаёт решение и направление, но не выдаёт второй сессии разрешения на действия. Получатель сам читает файлы и проверяет Git.

Я бы отправлял сообщение после фиксации кода и обновления файла состояния. Если сделать наоборот, текст может описывать правку, которая ещё не сохранена или уже изменилась.

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

## Что записать в `CLAUDE.md` для следующей сессии?

В `CLAUDE.md` храни постоянный контекст проекта: правила, ограничения и сжатые решения, которые нужны в будущей работе. Разовую задачу и текущий прогресс держи отдельно. `CLAUDE.md` не заменяет Git, файл состояния и тесты, потому что сам по себе не фиксирует конкретный результат.

Я разделяю два слоя и не смешиваю постоянные правила с текущим прогрессом. Для запроса `claude code settings` это важное различие: настройки и правила проекта живут отдельно от временного handoff.

В `CLAUDE.md` живут правила, которые должны действовать долго. Например, принятые ограничения и сжатые документы проекта. Такие документы становятся контекстом для будущей отладки и работы нескольких экземпляров Claude Code. О структуре файла и границах постоянных правил смотри [отдельную инструкцию по CLAUDE.md](/guides/claude-md-udalit-ili-perepisat).

Разовый прогресс хранится в другом месте:

- Git-коммит - что реально изменилось;
- файл состояния - где остановилась работа;
- список задач - что осталось;
- тесты - что уже проверено;
- сообщение - какой факт надо быстро донести другой сессии.

Не складывай в `CLAUDE.md` запись «сегодня сделай endpoint». Через день она превратится в старую инструкцию. Постоянные правила и текущая задача должны оставаться разными внешними артефактами.

Точный формат и место создания файла в исходных данных не описаны, поэтому я не буду придумывать структуру каталогов. Достаточно держать в нём сжатые правила проекта, а рабочий handoff вести в отдельном файле.

Если важное решение осталось только в чате, следующая сессия его не увидит без `resume`. Короткая запись в постоянном документе превращает разговор в повторно используемый контекст.

## Как продолжить работу Claude Code на другом устройстве?

Я бы сначала проверил версию и ОС, а уже потом пытался переносить сессию. Для старта разговора с удалённой сессией нужен Remote Control и Claude Code версии `2.1.225+`; cross-session messaging требует `2.1.224+`, работает на macOS и Linux, включая WSL 2, но недоступен в native Windows. Эти ограничения указаны в [официальной документации](https://code.claude.com/docs/en/cross-session-messaging).

На одной машине локальный обмен идёт через per-session socket. Между машинами сообщения проходят через серверы Anthropic и зависят от Remote Control, как описано в [официальной документации](https://code.claude.com/docs/en/cross-session-messaging).

Проверь ограничения до попытки передачи:

- `2.1.224+` нужен для cross-session messaging;
- `2.1.225+` нужен, чтобы начать разговор с сессией на другой машине;
- macOS и Linux поддерживаются;
- WSL 2 входит в поддерживаемый сценарий;
- native Windows не поддерживается;
- для межмашинной передачи нужен Remote Control.

Важное различие: Remote Control не делает историю чата общей автоматически. Remote Control даёт путь к удалённой сессии. Рабочее состояние всё равно лучше держать в Git и файле прогресса.

Точная процедура запуска Remote Control здесь не нужна для handoff. Безопасная схема такая: обеспечить нужную версию, запустить Remote Control, убедиться, что целевая сессия видна, затем передать короткое сообщение и проверить результат уже на машине получателя. Для параллельных локальных сессий смотри [разбор Agent-Manager](/guides/claude-code-neskolko-lokalnyh-sessij-cherez-agent-manager).

## Как переключиться на новую сессию Claude Code без потери задачи?

Сначала доведи текущий кусок до рабочего состояния, обнови файл прогресса и проверь тесты. Потом зафиксируй изменения в Git и отправь короткий handoff. Новая сессия должна прочитать состояние, сверить коммит и взять одну следующую проверяемую задачу, а не переписывать весь проект.

Останови сессию после конкретного результата. Не оставляй её посреди случайного набора правок. Проверь, что код не сломан.

Если задача ещё не закончена, запиши именно промежуточное состояние: что уже работает и где осталась граница.

Открой файл прогресса или scratchpad и заполни блоки `Done`, `Blocked`, `Next` и `Do not`.

   ```markdown
   ## Done
   - added reset token model

   ## Blocked
   - email provider is not configured

   ## Next
   - implement confirmation endpoint

   ## Do not
   - change database schema
   ```

Проверь тот участок, который менялся, и запиши результат рядом с прогрессом.

Не ограничивайся фразой «всё проверено». Новой сессии нужен конкретный тест или команда, которую можно повторить.

Посмотри статус и diff, затем создай коммит с понятным описанием.

   ```bash
   git status
   git diff
   git add .
   git commit -m "Save progress on password reset"
   ```

Коммит становится точкой, от которой следующая сессия может читать файлы, историю и проверяемый результат.

Передай одну полезную связку: изменение, место, решение, следующий шаг и запрет.

   

Не проси её сразу «продолжить всё». Сначала дай прочитать файл состояния и Git. Если нужно сменить режим работы, сформулируй `claude code switch` как одну конкретную операцию, а не как просьбу переписать проект.

Текст для старта:

   

Сверь файлы, статус Git и тесты после следующего небольшого изменения.

Если результат не совпал с handoff, остановись и обнови файл состояния. Не позволяй агенту перекрывать неопределённость массовой переписью проекта.

## Что делать, если сообщение не приходит или сессии конфликтуют?

Не считай messaging гарантированным каналом и не используй его как блокировку файлов. Сообщение может прийти сразу, ожидать одобрения, истечь или быть отброшено. `/list-agents` показывает доступные сессии, но не их роль, файлы, задачу или занятость. Для общего состояния нужны Git, файл журнала и явные границы.

![Мужчина у общего журнала показывает конфликтующие сессии и команду /list-agents.](https://s3.regru.cloud/crossmark/statejnik/images/guides/claude-code-peredacha-zadachi-mezhdu-sessiyami-bez-poteri-konteksta/kadr-3.webp)

У канала есть несколько отдельных поломок.

Сообщение может иметь статус `delivered`, `held` или `refused`. В режиме ожидания оно может истечь через пять минут. Очередь сообщений, ожидающих чтения Claude, ограничена 50 сообщениями, а очередь удерживаемых сообщений составляет 100. Эти значения и статусы приведены в [документации cross-session messaging](https://code.claude.com/docs/en/cross-session-messaging), поэтому перед публикацией их стоит сверять с актуальной версией. Фразу «я отправил» нельзя считать доказательством получения.

Проверь сессию через:

```text
/list-agents
```

Но список не сообщает автоматически:

- кто пишет код;
- какие файлы открыты;
- какая задача выполняется;
- занята ли сессия;
- ждёт ли она одобрения.

Не следует считать сообщение механизмом блокировки файла: перед изменением общей области всё равно нужны Git worktree или явная договорённость. Две сессии могут почти одновременно решить, что один и тот же файл свободен. Сообщение снижает риск, но не предотвращает гонку.

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

Не поручай двум сессиям одновременно менять одну область. Раздели файлы или рабочие каталоги, укажи текущего исполнителя и добавь в журнал статус решения. Для спорных изменений сначала проверь Git и тесты.

## Вопросы и ответы

Надёжная передача задачи Claude Code строится не на одном сообщении. `resume` возвращает историю исходной беседы, Git фиксирует файлы, внешний план сохраняет прогресс, `CLAUDE.md` держит постоянные правила, а messaging быстро сообщает другой сессии конкретный факт или следующий шаг.

Вынеси план во внешний файл или список задач. Для сложной работы используй блоки `Done`, `Blocked`, `Next` и `Do not`, затем передай новой сессии один ближайший проверяемый пункт. Такой подход отвечает на запрос `claude code plans`: новая сессия видит состояние, блокер и следующий шаг, а не пытается восстановить весь план по памяти.

Для полной истории используй `resume`. Cross-session messaging переносит только текст и не включает историю разговора, файлы или состояние инструментов. Если задача относится к `claude code prompts`, передай новой сессии сам промпт, путь к результату, решение, следующую проверку и запрет на лишние изменения.

Можно при наличии Remote Control и подходящей версии Claude Code. Для старта разговора с сессией на другой машине нужна версия `2.1.225+`; межмашинные сообщения проходят через серверы Anthropic. Перед переносом проверь ОС, версию и доступность целевой сессии, а состояние проекта передай через Git и файл прогресса.

В `CLAUDE.md` удобно хранить постоянные правила проекта и сжатые решения. Разовый прогресс лучше держать отдельно в файле состояния, Git и списке задач. Так следующая сессия получает устойчивые настройки и проверяемую рабочую точку, а устаревшая разовая инструкция не начинает управлять проектом.

Постоянные инструкции храни в `CLAUDE.md`. Точную структуру файла я не буду придумывать без источника: рабочий handoff, текущие шаги и результаты тестов держи отдельно. Так настройки проекта остаются стабильными, а временная задача не превращается в устаревшее правило для будущих сессий.

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

Попроси прочитать файл состояния и последний Git-коммит, проверить тесты, взять только пункт из `Next` и не повторять работу из `Done`. Отдельно укажи блокеры и запреты. В запросе полезно назвать путь к файлам, команду проверки и ожидаемый результат, чтобы новая сессия могла сверить действие, а не угадывать намерение.

Сохрани изменения в Git, прогресс во внешнем файле, постоянные правила в `CLAUDE.md`, проверочные тесты и короткое сообщение с решением, местом изменения и следующим действием. `resume` нужен для истории той же беседы, а Git и state-файл помогают передать проверяемый результат независимой сессии.

Держи список во внешнем файле или scratchpad. Записывай не только названия задач, но и статус, блокер, следующий небольшой шаг и то, что менять нельзя. Такой список превращает `Next` в рабочее ограничение: новая сессия берёт одну задачу и сначала сообщает о препятствиях.

Сначала приведи код в рабочее состояние и создай коммит. Затем передай новой сессии идентификатор коммита, путь к файлам, результат тестов и одну следующую задачу. Коммит даёт проверяемую точку отсчёта, а handoff объясняет, почему она важна и какую проверку выполнить дальше.

- [Cross-session messaging](https://code.claude.com/docs/en/cross-session-messaging)
- [Effective harnesses for long-running agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents?lid=1f0n56CPItf3Nm9NR)
- [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices?trk=feed_main-feed-card_feed-article-content)
- [How Anthropic teams use Claude Code](https://www.anthropic.com/news/how-anthropic-teams-use-claude-code?trk=article-ssr-frontend-pulse_little-text-block)
- [Building a C compiler with a team of parallel Claudes](https://www.anthropic.com/engineering/building-c-compiler?_bhlid=96a15b739df46b68fb3a35add39ac08f30361151)
- [Release v2.1.224](https://github.com/anthropics/claude-code/releases/tag/v2.1.224)
- [Release v2.1.229](https://github.com/anthropics/claude-code/releases/tag/v2.1.229)
- [Feature request: trusted peer sessions](https://github.com/anthropics/claude-code/issues/78706)
- [Running several Claude Code sessions in one repo?](https://www.reddit.com/r/ClaudeAI/comments/1viv4us/running_several-claude-code-sessions-in-one-repo/)
- [Claude Code sessions can message each other now](https://www.reddit.com/r/ClaudeAI/comments/1vkmgbj/claude-code-now-lets-sessions-message-each-other/)
- [Claude Code now lets sessions talk to each other](https://www.reddit.com/r/ClaudeAI/comments/1vj4aqt/claude-code-now-lets-sessions-talk-to-each-other/)
