Claude Code: работа с coding-агентом3. Знакомство с Claude Code
Назад во времени: rewind и возобновление session
Засчитывается, когда отвечены все вопросы квиза
Зачем это нужно
Вы попросили агента попробовать один подход, он поправил пять файлов, и стало ясно: не то. Можно написать «откати это», и агент перепишет файлы обратно — но это ещё одна правка, которая тратит контекст и может что-то упустить. А попытка всё равно останется в разговоре и будет влиять на следующие ответы. Есть вариант чище: вернуть и код, и разговор в точку до неудачной попытки. Вторая похожая ситуация — вы закрыли терминал посреди работы и хотите продолжить с того же места, не объясняя задачу заново.
Как это устроено
Checkpoints. Claude Code сам запоминает состояние кода перед каждым промптом, который начинает turn: каждый такой промпт создаёт checkpoint. Отслеживаются изменения, которые агент делает своими инструментами редактирования файлов. В session хранятся снимки файлов для 100 последних checkpoints, и они сохраняются вместе с разговором, поэтому откат работает и после возобновления session.
Меню rewind. Откройте его командой /rewind или двойным Esc при пустом поле ввода. В меню — список ваших промптов в этой session. Выберите точку и действие:
- Restore code and conversation — вернуть к этой точке и код, и разговор;
- Restore conversation — откатить разговор, оставив текущий код;
- Restore code — откатить файлы, оставив разговор;
- Summarize from here и Summarize up to here — сжать часть разговора в краткое изложение, чтобы освободить контекст;
- Never mind — вернуться к списку сообщений без изменений.
Варианты с откатом кода появляются, только если после выбранной точки агент менял файлы. После отката разговора исходный промпт выбранной точки возвращается в поле ввода: его можно поправить и отправить заново.
Возобновление session. Claude Code сохраняет session локально, так что после выхода к ней можно вернуться:
claude --continue(или-c) открывает последний разговор в текущем каталоге;claude --resume(или-r) открывает session по ID или имени, а без аргумента — список для выбора;/resumeвнутри Claude Code открывает тот же список session.
Практика
В Cadence попросите агента о маленькой правке, например добавить в package.json скрипт hello, который печатает hello. Если session в режиме auto, агент внесёт правку сам; в режиме Manual примите её. Теперь при пустом поле ввода дважды нажмите Esc, выберите промпт с этой просьбой и Restore code and conversation. Проверьте:
! git diff
Diff пуст: файл вернулся к прежнему состоянию, а просьба снова стоит в поле ввода. Сотрите её и отправьте агенту любой короткий вопрос: Claude Code сохраняет откатанный разговор вместе со следующим промптом. Теперь выйдите двойным Ctrl+C и запустите claude --continue — вы в том же разговоре, уже без отменённой просьбы.
Подводные камни
- Изменения через Bash не отслеживаются. Если файл меняли только shell-команды агента, а инструментами редактирования он его в этом разговоре не трогал, rewind файл не вернёт. Для этого нужен git.
- Внешние правки тоже. Изменения, которые вы сделали руками вне Claude Code, rewind не откатывает.
- Rewind — не замена git. Checkpoints рассчитаны на быстрый откат внутри session. Историю, ветки и коммиты по-прежнему ведёт система контроля версий.
- Выход сразу после отката. Если выйти, не отправив после rewind ни одного промпта, убранные сообщения могут вернуться в разговор. Файлы при этом остаются такими, какими их оставил rewind.
- Двойной
Escс текстом в поле не открывает меню, а очищает черновик. Черновик сохраняется в истории ввода: нажмитеUp, чтобы его вернуть.
Вывод: неудачную попытку откатывайте через rewind целиком — код и разговор, а git оставьте для истории, которую нужно хранить.
Проверь себя
Агент попробовал подход, поправил файлы, и вы хотите убрать попытку целиком: и правки, и сообщения, которые к ним привели. Что выбрать в меню rewind?
Вы вернулись в репозиторий через неделю и хотите открыть конкретный старый разговор, а не последний. Как это сделать?
/resume
и выбрать session из списка
claude --continue
Esc
и выбрать ранний checkpoint
/resume
показывает список session, и в нём можно выбрать нужную.
--continue
откроет последний разговор, а rewind двигается только внутри текущей session. Новая session не знает старой истории.
Агент удалил файл командой rm через Bash, а до этого его не редактировал. Вы открываете rewind и выбираете Restore code. Что будет с файлом?
Источники
- Anthropic, Checkpointing
- Anthropic, CLI reference
- Anthropic, Commands
- Anthropic, Interactive mode
- По мотивам AI Coding Crash Course, AI Hero: урок «Going Forwards and Backwards in Time»
Текст подготовлен с помощью LLM и может содержать неточности.