Перейти к тексту

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 оставьте для истории, которую нужно хранить.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.