Отмена изменений Claude Code: rewind, git, чекпоинты

Как отменить изменения Claude Code через /rewind, git или чекпоинты AgentVera: что восстанавливает каждый способ, что пропускает и как безопасно откатить один ход агента.

Solviera Teknoloji 6 мин чтения

Чтобы отменить изменения Claude Code, используйте /rewind для правок текущей сессии, git для всего закоммиченного или восстановимого из репозитория и чекпоинты AgentVera, когда нужно откатить всю рабочую папку к началу конкретного хода агента. Каждый способ закрывает свой пробел. Знание, за какой браться, убережёт от потери работы при отмене работы агента.

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

Короткий ответ

Вы хотите отменитьИспользуйтеОсторожно
Последние несколько правок в этой сессии Claude Code/rewind или двойной EscИзменения от команд оболочки не отслеживаются
Изменения в одном отслеживаемом файлеgit restore <file>Незакоммиченные правки в этом файле пропадут
Всё после последнего коммитаgit stash -u или git reset --hard + git cleanclean удаляет неотслеживаемые файлы насовсем
Закоммиченное изменениеgit revert <commit>Создаёт новый коммит, отменяющий его
Один ход агента, включая файлы, созданные им командами оболочкиЧекпоинты AgentVeraОткатывает и других агентов в той же папке

Вариант 1: /rewind внутри Claude Code

Claude Code сохраняет чекпоинты, пока правит файлы. Чтобы вернуться, дважды нажмите Esc или выполните /rewind. Вы выбираете сообщение из сессии, затем решаете, что восстановить:

  • Только код: файлы возвращаются к состоянию на момент этого сообщения, диалог остаётся.
  • Только диалог: диалог возвращается назад, файлы остаются как есть.
  • Оба: чистый шаг назад к этой точке.

Это самая быстрая отмена, пока вы ещё в сессии, и правильный первый ход, когда агент только что сделал плохую правку.

Что он пропускает: чекпоинты Claude Code отслеживают правки, которые делают его собственные файловые инструменты. Изменения, сделанные командами оболочки, такими как rm, mv, генератор кода или скрипт миграции, не отслеживаются. Изменения из других сессий или других инструментов в той же папке тоже. /rewind — удобство, а не замена системы контроля версий.

Вариант 2: git

Git — это отмена, которая работает для любого инструмента, если то, что вы хотите сохранить или отбросить, видно git.

# See what changed
git status
git diff

# Throw away changes to one tracked file
git restore src/api/user.ts

# Park everything, including new files, and keep it in case you need it
git stash -u

# Drop all uncommitted changes to tracked files
git reset --hard

# Delete untracked files and folders (check first with -n)
git clean -n -d
git clean -f -d

# Reverse a commit the agent already made
git revert <commit>

Две привычки делают git гораздо лучшей отменой для работы агентов:

  1. Коммитьте перед тем, как запускать агента на задачу. Тогда git diff показывает ровно то, что сделал агент, а git stash -u или git reset --hard возвращает вас назад.
  2. Давайте каждому агенту свой worktree. Тогда отмена одного агента никогда не затрагивает работу другого. См. git worktree для параллельных агентов.

Что он пропускает: всё между коммитами. Если вы делали собственные правки в тех же файлах, пока агент работал, git reset --hard сбросит и их. git clean удаляет неотслеживаемые файлы навсегда, поэтому всегда сначала запускайте его с -n.

Вариант 3: чекпоинты AgentVera

AgentVera добавляет отмену по ходам, которая располагается между двумя предыдущими способами. Она работает с любым CLI-агентом, запущенным в локальной папке, а не только с Claude Code.

Как работают снимки

В начале каждого хода AgentVera делает снимок рабочей папки агента (его worktree или папки проекта). Снимок охватывает отслеживаемые и неотслеживаемые файлы и учитывает .gitignore. Он хранится как коммит под скрытым ref, refs/agentvera/checkpoints/…. Ваши ветки, индекс, stash и HEAD не меняются, а в git log и git status ничего не появляется.

На каждого агента хранятся последние 60 ходов. Удаление агента удаляет его снимки. Проект должен быть репозиторием Git. Первый снимок делается, когда вы отправляете агенту сообщение (или печатаете Claude в терминале).

Откат хода

  1. В заголовке панели агента нажмите Turns («Turns and rollback»). В узкой панели он находится в Options.
  2. В списке ходы идут от новых к старым, у каждого его номер, промпт и время. Ход, набранный прямо в терминале, показан как «Turn typed in the terminal».
  3. Раскройте ход, чтобы увидеть изменённые им файлы с пометками added, modified или deleted и числом строк.
  4. Нажмите Roll back this turn и подтвердите Roll back turn.

Рабочая папка возвращается к началу этого хода. Файлы, добавленные после него, удаляются, а изменённые или удалённые восстанавливаются. Затем AgentVera сообщает, сколько файлов он восстановил. Если агент ещё работает, диалог рекомендует сначала остановить его, чтобы он не продолжал править файлы, пока папка меняется под ним.

Отмена отката

Перед откатом AgentVera отдельно сохраняет текущее состояние. Оно появляется вверху списка как State before the rollback. Нажмите Return to this state, чтобы вернуть именно то, что у вас было. Так что пробовать откат безопасно. Если окажется, что изменение агента было нормальным, можно вернуться к нему.

С телефона

Если вы управляете агентами из Telegram, среди кнопок агента есть ↩️ Undo last turn. Она показывает список файлов и просит подтвердить. Потом можно всё равно отменить это из списка чекпоинтов на десктопе. См. управление через Telegram.

Что он пропускает

  • Других агентов в той же папке. Откат восстанавливает папку, поэтому более поздние изменения других агентов, работающих в этой папке, тоже откатываются. Подтверждение говорит об этом. Worktree этого избегают.
  • Игнорируемые файлы. Файлы, совпадающие с .gitignore, такие как node_modules или локальный .env, не входят в снимок.
  • Всё за пределами папки. База данных, которую агент мигрировал, пакет, который он опубликовал, или push, который он сделал, не файлы в папке, так что никакой снимок папки их не отменит.
  • SSH-агентов и обычные терминалы. Для агентов на удалённом сервере чекпоинт не создаётся, потому что их папки не на этом компьютере.

Что использовать и когда

  • Агент только что сделал плохую правку, и вы ещё в сессии: /rewind.
  • Агент запустил скрипт, который удалил или сгенерировал файлы: чекпоинты AgentVera или git, а не /rewind.
  • Несколько ходов пошли не туда: откатитесь к началу первого плохого хода в Turns. Если передумаете, можно вернуться к текущему состоянию.
  • Работа закоммичена: git revert.
  • Нужен чистый лист для всей задачи: git stash -u или git reset --hard, если вы закоммитили перед началом.

Чтобы отменять реже

Отмена — страховочная сетка, а не план. Несколько привычек сделают её нужной реже:

  • Небольшие, чётко ограниченные промпты. Ход, меняющий три файла, легко проверить и легко откатить.
  • Сначала план для рискованной работы. Пусть агент опишет изменение, прежде чем его делать.
  • Проверяйте каждый ход. Ревью кода AgentVera умеет проверять код агента в конце каждого хода. О том, на что смотреть, рассказывает статья ИИ-ревью кода.
  • Держите деструктивные команды за подтверждением. О разрешениях, изоляции в Docker и подтверждениях говорит статья безопасность ИИ-агентов для кода.

Итоги

Единой отмены для ИИ-агента кода не существует. /rewind быстр для правок текущей сессии. Git покрывает всё, что видит, и лучше всего работает, когда вы коммитите перед каждой задачей. Чекпоинты AgentVera заполняют пробел между ними: снимок всей рабочей папки на каждом ходу, откат, который сам можно отменить, и та же кнопка на телефоне. Страница чекпоинтов и повтора рассказывает и о повторе сессий, который проигрывает сессию Claude или Codex шаг за шагом, чтобы вы увидели, где всё пошло не так.

Вопросы

Как отменить последнее действие Claude Code?

В Claude Code дважды нажмите Esc или выполните /rewind, выберите сообщение, к которому вернуться, и решите, что восстановить: код, диалог или оба. В AgentVera откройте Turns в панели агента и выберите Roll back this turn.

Почему /rewind не вернул удалённый файл?

Чекпоинты Claude Code отслеживают правки, которые делают его файловые инструменты. Файлы, изменённые или удалённые командами оболочки, такими как rm или скрипт, не отслеживаются. Для них используйте git или снимок папки, например чекпоинты AgentVera.

Меняют ли чекпоинты AgentVera мои ветки или stash?

Нет. Снимки хранятся в скрытом git ref. Ваши ветки, индекс, stash и HEAD остаются нетронутыми. Проект должен быть репозиторием Git.

Можно ли отменить откат?

Да. Перед откатом AgentVera сохраняет текущее состояние как «State before the rollback». Выберите Return to this state, чтобы вернуться к нему.

Работают ли чекпоинты с Codex и другими агентами?

Да. Чекпоинты создаются для любого CLI-агента, работающего в локальной папке, а не только для Claude Code. Для агентов на SSH-сервере и обычных терминалов они не создаются.

Соберите своих агентов за одним столом.

Скачайте AgentVera бесплатно; ваши установленные CLI уже готовы к работе.

Другие статьи