Как создаются чекпоинты

Официальная документация Claude Code (code.claude.com/docs/en/checkpointing) описывает механизм так: по мере работы Claude Code автоматически отслеживает файловые правки Claude, позволяя быстро отменить изменения и вернуться к прежнему состоянию, если что-то пошло не так. Каждый отправленный промпт, начинающий новый ход, создаёт новый чекпоинт. Claude Code хранит файловые снапшоты для 100 последних чекпоинтов сессии и сохраняет чекпоинты вместе с историей диалога - поэтому /rewind работает даже после того, как вы возобновили сессию.

Как открыть меню и что выбрать

Открыть меню отмены - команда /rewind, либо двойное нажатие Esc при пустом поле ввода (если в поле есть текст, двойной Esc просто очистит его - очищенный текст сохраняется в историю ввода, доступную по стрелке вверх). Меню показывает каждый отправленный промпт сессии, и для выбранной точки доступны варианты:

  • Restore code and conversation - откатить и код, и диалог к этой точке
  • Restore conversation - вернуться к этому сообщению, оставив текущий код
  • Restore code - откатить файловые изменения, оставив диалог
  • Summarize from here - сжать диалог начиная с этой точки в резюме, освобождая место в контекстном окне
  • Summarize up to here - сжать диалог до этой точки, оставив более поздние сообщения нетронутыми
  • Never mind - вернуться к списку без изменений

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

Что чекпоинты не отслеживают

Официальное ограничение: чекпоинты не отслеживают изменения файлов через bash-команды - например, rm file.txt, mv old.txt new.txt, cp source.txt dest.txt. Такие модификации нельзя отменить через /rewind - отслеживаются только правки через встроенные инструменты редактирования файлов Claude.

Правки сабагентов обычно не попадают в чекпоинты родительской сессии - исключение составляет форкнутый скилл (context: fork), работающий на переднем плане в рамках вашего хода. Любой другой сабагент, включая фоновый форк по умолчанию и фоновый /code-review --fix, требует отмены через git. Также не восстанавливаются: правки, сделанные вручную вне Claude Code или в параллельных сессиях, и файлы по символическим или хардлинк-путям - в последнем случае Claude Code покажет предупреждение «Restored the code, but skipped N files».

Практические сценарии использования

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

Почему это не замена git

Официальная документация прямо предупреждает: чекпоинты предназначены для быстрого восстановления на уровне сессии. Для постоянной истории версий и совместной работы нужно продолжать использовать систему контроля версий - git с коммитами, ветками и долгосрочной историей.

Как быстро открыть меню отмены изменений в Claude Code?
Команда /rewind, или двойное нажатие Esc при пустом поле ввода - откроется меню со всеми промптами сессии и вариантами восстановления для выбранной точки.
Можно ли отменить изменение, сделанное через bash-команду rm или mv?
Нет. Чекпоинты отслеживают только правки через встроенные инструменты редактирования файлов Claude - изменения через bash-команды не отслеживаются и не могут быть отменены через /rewind.
Сколько чекпоинтов хранит Claude Code и как долго?
До 100 последних чекпоинтов сессии с файловыми снапшотами. Сами снапшоты удаляются в рамках автоматической очистки примерно через 30 дней после последнего сохранения сессии - срок можно изменить настройкой cleanupPeriodDays.
Восстанавливает ли /rewind изменения, сделанные сабагентом?
Как правило нет, кроме форкнутого скилла (context: fork), работающего на переднем плане. Изменения любого другого сабагента, включая фоновые, нужно отменять через git.
Заменяют ли чекпоинты Claude Code систему контроля версий?
Нет. Официальная документация прямо указывает, что чекпоинты - для быстрого восстановления на уровне сессии, а для постоянной истории и совместной работы нужен git.
Что произойдёт, если восстановить код с символическими ссылками в проекте?
Claude Code пропустит такие пути при восстановлении и покажет предупреждение о количестве пропущенных файлов - их содержимое останется текущим, а отменить изменения в них нужно вручную или попросив Claude сделать это отдельно.
Источники (2)
  1. Claude Code Docs - Checkpointing
  2. Claude Code Docs - Interactive mode
← Все статьи блога