Перейти к основному содержимому

Контрольные точки и откат

Средний
What you'll learn
  • Понять, что фиксирует контрольная точка — и чего она молча не фиксирует
  • Открывать меню отката двумя способами и каждый раз выбирать правильное действие восстановления
  • Отличать «restore» (отмена состояния) от «summarize» (сжатие контекста)
  • Точно знать, почему контрольные точки дополняют Git, но никогда не заменяют его

Главная идея​

Когда вы отпускаете Claude на амбициозное, масштабное изменение, самый страшный вопрос — «а что, если всё пойдёт не так на третьей правке?» Ответ — контрольные точки (checkpointing): Claude Code автоматически делает снимок вашего кода перед каждым ходом, который вы запускаете, и вы можете откатиться к любому прежнему состоянию, а не вручную распутывать недоделанный рефакторинг.

Считайте это локальной отменой для всей сессии — страховочной сеткой, которая позволяет без страха сказать: «да, пробуй смелый подход».

Как создаются контрольные точки​

Вы не создаёте контрольные точки — они появляются автоматически.

Guided walkthrough1 of 4
  1. Каждый запрос, который начинает ход, фиксирует состояние вашего кода до запуска инструментов редактирования файлов Claude. Ни команд, ни настроек, ни церемоний.

Как открыть меню отката​

Есть два способа:

Guided walkthrough1 of 2
  1. Введите слэш-команду в строке запроса. Работает всегда. /checkpoint и /undo — псевдонимы той же команды, так что используйте то имя, которое первым приходит в голову.

Открыть меню отката

/rewind
Watch out
  • Названия-псевдонимы дружелюбнее, чем буквальны: /checkpoint не делает снимок по требованию (снимки создаются автоматически), а /undo сама по себе не отменяет последнюю правку. Все три имени открывают одно и то же меню, где точку и действие вы по-прежнему выбираете сами.

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

Restore и summarize: ключевое различие​

Именно здесь путаются. Меню предлагает два вида действий:

  • Действия Restore меняют состояние на диске и/или в разговоре — они отменяют.
  • Действия Summarize никогда не трогают ваши файлы — они сжимают разговор, чтобы освободить место в окне контекста.
Watch out
  • Restore = отмена (возвращает код, разговор или и то и другое). Summarize = сжатие контекста (файлы на диске не затрагиваются).
  • Используйте restore, когда правка что-то сломала. Используйте summarize, когда сессия раздулась, но с кодом всё в порядке.

Действия восстановления​

Guided walkthrough1 of 3
  1. Возвращает и ваши файлы, и историю чата к выбранной точке — чистая «перемотка времени» к этому моменту.

Две опции восстановления кода появляются, только если у выбранной контрольной точки действительно есть отслеживаемые изменения файлов для отката. Если после этой точки правок файлов не зафиксировано, меню предлагает лишь Restore conversation, два варианта summarize и Never mind (возвращает к списку сообщений без каких-либо изменений).

После восстановления разговора (или выбора «Summarize from here») исходный запрос выбранного сообщения возвращается в поле ввода, чтобы вы могли отправить его снова или отредактировать.

Действия summarize​

Оба сжимают часть разговора в сгенерированное ИИ резюме — как точечный /compact, где вы выбираете, какую сторону от выбранного сообщения сжать.

Guided walkthrough1 of 2
  1. Сообщения ДО выбранного остаются нетронутыми. Выбранное сообщение и всё после него превращаются в резюме. Используйте, чтобы отбросить побочное обсуждение, сохранив ранний контекст во всех подробностях.

В обоих случаях исходные сообщения остаются в журнале сессии, так что Claude по-прежнему может обращаться к деталям, а на месте сжатых сообщений появляется метка Summarized conversation. Чтобы направить резюме, выделите стрелками вариант Summarize и введите инструкции там, где в строке написано add context (optional), затем нажмите Enter — выбор варианта цифровой клавишей запускает сжатие сразу, без инструкций.

Весь процесс описан в разделе Управление контекстом — действия summarize в /rewind это скальпель, тогда как /compact — широкая кисть.

What you'll learn
  • Summarize оставляет вас в той же сессии. Чтобы ответвиться и попробовать другой подход, не трогая исходную сессию, используйте /branch или claude --continue --fork-session.

Откат за пределы /clear​

Если ранее в том же процессе Claude Code вы выполняли /clear, меню отката показывает дополнительную запись сверху: /resume <session-id> (previous session). Выберите её, чтобы вернуться к разговору, который был активен до /clear.

Где контрольные точки заканчиваются — ограничения, которые бьют больнее всего​

Контрольные точки кажутся волшебством, пока не перестают им быть. Эти пробелы важны:

Guided walkthrough1 of 7
  1. Отслеживание ведётся по файлам, и файл попадает в него только тогда, когда Claude правит его своими инструментами редактирования файлов. После этого /rewind отменяет и то, что команды Bash делают с этим же файлом потом: форматтер или генератор, переписавший уже правленный файл, откатывается. Файл, которого касался только Bash, не отслеживается и остаётся как есть, поэтому файл, удалённый через rm и никогда не правленный Claude, требует Git. Меню это отражает: под каждым запросом оно считает изменения файлов, которые Claude уже правил, независимо от того, чем они вызваны.

Контрольные точки и Git: используйте оба​

Они решают разные задачи, поэтому сочетайте их.

Контрольные точки (/rewind)Git
ОхватОдна сессияВся история проекта
ДетализацияНа каждый запрос, начинающий ход, автоматическиНа каждый коммит, осознанно
Отслеживает изменения через bash?Только для файлов, которые Claude уже правилДа (после добавления в индекс/коммита)
Срок жизни100 последних контрольных точек, очистка ~через 30 дней после сессииПостоянно
Можно делиться / совместная работаНетДа
Мысленная модель«Локальная отмена»«Постоянная история»
Pro tip
  • Коммитьте рабочие состояния в Git перед рискованным масштабным запуском — это ваша прочная опора.
  • Используйте /rewind для быстрого восстановления внутри сессии между коммитами, не засоряя историю Git.
  • Полагайтесь на Git для файлов, которые Claude никогда не правит напрямую, — тех, которых касается только деструктивный bash (rm/mv) или фоновый субагент. Rewind охватывает файл лишь после того, как Claude отредактировал его своими файловыми инструментами.

Когда это использовать​

Guided walkthrough1 of 4
  1. Попробуйте смелую реализацию, и если она не понравится, восстановите код и разговор до точки развилки и попробуйте другую.

Проверьте себя

0/3
  1. Claude ни разу не правил `config.old.json` своими файловыми инструментами, а затем удалил его через `rm` в bash-команде. Может ли `/rewind` его вернуть?
  2. С кодом всё в порядке, но долгий отладочный обход заполнил окно контекста. Какое действие подходит?
  3. Как создаётся контрольная точка?
Словарь контрольных точек и отката
Нажмите Enter или пробел, чтобы перевернуть карточку. Используйте стрелки влево и вправо для перехода между карточками.Показан термин.
1 / 6
Key takeaways
  • Контрольные точки — автоматические снимки перед каждым запросом, начинающим ход, то есть локальная отмена для сессии. Хранятся 100 последних, затем очистка ~через 30 дней после сессии.
  • Меню отката открывается командой /rewind (псевдонимы: /checkpoint, /undo) или двойным Esc при пустом вводе; в нём перечислены все отправленные запросы.
  • Действия restore отменяют состояние (код, разговор или оба); действия summarize сжимают контекст и никогда не трогают файлы.
  • Отслеживание ведётся по файлам и начинается, когда Claude правит файл своими файловыми инструментами — после этого откатываются даже изменения Bash в этом файле. Файлы, которых Claude никогда не правил (только bash, внешние, параллельные, большинство правок субагентов), не отслеживаются, а пути с символическими или жёсткими ссылками пропускаются при restore.
  • Контрольные точки дополняют Git, а не заменяют его: думайте «локальная отмена» против «постоянной истории, которой можно делиться».

Дальше​