Как откатить изменения Claude Code — с git и без
Чтобы откатить изменения Claude Code в текущей сессии, дважды нажмите Esc (или введите /rewind), выберите сообщение, до которого все было хорошо, и пункт Restore code. Так возвращаются файлы, которые Claude правил своими инструментами редактирования. Но не возвращаются файлы, которые он удалил, переместил или скопировал командами терминала, правки большинства сабагентов и все, что старше точек отката сессии. Для этого нужна настоящая история: git, история версий облачного диска или резервная копия. Ниже — что именно умеет каждый способ, простыми словами, и как в следующий раз не потерять работу.
Шаг 1. /rewind — встроенный откат Claude Code
Перед каждым вашим сообщением Claude Code сохраняет точку отката. По документации Anthropic:
- Как открыть: команда
/rewindили двойнойEsc, когда поле ввода пустое. - Что можно вернуть: код и диалог, только диалог или только код — на момент выбранного сообщения.
- Насколько далеко: снимки файлов хранятся для 100 последних точек сессии. Они переживают закрытие и возобновление сессии, но удаляются примерно через 30 дней после последнего сохраненного снимка.
Ограничения важнее возможностей:
| /rewind возвращает | /rewind не возвращает |
|---|---|
| Файлы, которые Claude менял инструментами правки и записи | Файлы, измененные командами терминала: rm, mv, cp и т. п. |
| Правки этой сессии | Ваши ручные правки вне Claude Code и правки других сессий |
| Правки навыка, работающего на переднем плане | Большинство правок сабагентов, включая фоновые |
| Файлы-ссылки (symlink, hard link) | |
| То, что ушло наружу: загрузку, письмо, публикацию |
Документация сама предупреждает: точки отката — для быстрого восстановления внутри сессии, а не замена контролю версий.
Шаг 2. Попросить Claude откатить — осторожно
«Отмени это» кажется самым простым решением. И может оказаться самым рискованным. В одном баг-репорте Claude Code просьба откатиться привела к команде git reset --hard, и несохраненная работа за утро пропала. На Хабре разбирали похожий случай, когда незакоммиченные правки стирал сам Claude Code.
Если просите агента что-то вернуть:
- Называйте файл и момент: «Верни
notes/plan.mdк последней сохраненной версии», а не «отмени это». - Сначала план: «Скажи, какую команду запустишь, прежде чем запускать».
- Отказывайтесь от всего, что выбрасывает работу.
git reset --hard,git checkout -- .иgit cleanудаляют несохраненное. Безопасный откат добавляет новую версию сверху, а не стирает историю.
Шаг 3. С git откат — это новая версия
Если проект — git-репозиторий, любую сохраненную версию (коммит) можно вернуть. Два вида отката покрывают почти все:
- Один файл — к прежней версии.
git restore --source=<версия> -- путь/к/файлувозвращает файл таким, каким он был в этой версии. Остальные файлы не трогаются. - Целая версия — отменить.
git revert <версия>создает новую версию, которая отменяет выбранную. В истории остаются обе, поэтому и сам откат можно отменить.
Оба способа — откат «вперед»: ничего не стирается. Чтобы найти нужную версию, git log покажет список с описаниями; в коммитах Claude Code по умолчанию есть строка Co-Authored-By: Claude, так что версии агента легко отличить.
Чем git не поможет: изменениями, которые так и не стали версией. Если агент поправил файлы, а потом что-то их стерло до коммита, git восстанавливать нечего. Поэтому так важна привычка из шага 5.
Шаг 4. Без git
Нет git — нет истории? Варианты все равно есть, смотря где лежит папка:
- Папка Google Диска. Диск хранит прежние версии каждого файла. В справке Google сказано, что версия может быть удалена через 30 дней или когда появится 100 более новых, если не отметить ее «Хранить постоянно». На drive.google.com: правый клик по файлу → «Информация о файле» → «Управление версиями», и скачайте нужную.
- Яндекс Диск хранит историю изменений файлов только в своих приложениях (14 дней бесплатно, дольше — с Яндекс 360), другим программам она недоступна.
- Time Machine (Mac) или «История файлов» (Windows). Если резервное копирование было включено, откройте папку проекта и вернитесь назад во времени.
- Копия папки. Многие гайды для непрограммистов советуют дублировать проект перед большой сессией. Просто, но работает.
Если ничего из этого нет, проверьте, не открыт ли файл в программе со своей отменой или автосохранением. Дальше, честно, изменение потеряно — и это повод завести git (агент сделает это за вас одной просьбой).
Откат в X-Filer без слов из git
Здесь говорим о своем продукте. X-Filer — приложение для Windows и macOS, которое мы делаем для тех, кто ведет проект с Claude Code. Оно показывает версии проекта лентой — каждая помечена Агент или Вы — и откатывает их двумя кнопками:
- «Вернуть как было» возвращает один файл к виду до выбранной версии.
- «Откатить версию» отменяет версию целиком.
Оба действия добавляют новую версию, а не переписывают историю, поэтому любой откат тоже можно отменить. Если у файла есть несохраненные правки, X-Filer сначала сохраняет их отдельной версией — даже они не теряются. А если более поздняя версия меняла те же строки, «Откатить версию» не гадает: останавливается, сообщает, что вы и агент правили одно место, и оставляет файлы как были.
Где это работает, честно:
- Проект на компьютере с git: обе кнопки. Git должен быть установлен, его команд вы не увидите.
- Репозиторий на GitHub: обе кнопки после входа в GitHub. Каждый откат — новая версия на GitHub.
- Папка синхронизации Google Диска (пока только macOS): «Вернуть как было» из ревизий Диска, если этот аккаунт подключен в X-Filer. Отката целой версии нет: у диска есть ревизии файлов, а не версии проекта.
- Папка Яндекс Диска: X-Filer показывает, какие файлы изменились, но вернуть старую версию не может — Яндекс Диск не отдает историю файлов другим программам.
- Папка без git: читать и править можно, а откатывать не из чего. X-Filer подскажет, как хранить проект, и скопирует готовую задачу для Claude Code, чтобы тот все настроил.
Агент и вы различаются только по подписи в коммитах Claude Code. Подробнее — на странице проектов с агентом и в статье о том, как посмотреть, что изменил Claude Code.
Шаг 5. Чтобы следующий откат был простым
- Держите проект в git, даже если сами git не трогаете. Попросите агента: «Сделай эту папку git-репозиторием и сохраняй версию после каждой задачи». Тогда к любой задаче будет куда вернуться.
- Отправьте его на GitHub. Это копия вне компьютера, а облачным сессиям GitHub все равно нужен.
- Запишите правило в CLAUDE.md. Например: «Никогда не запускай
git reset --hard,git checkout -- .иgit clean. Спрашивай, прежде чем удалять файлы». CLAUDE.md направляет агента, но ничего не запрещает жестко, поэтому резервные копии все равно нужны. - Посмотрите, прежде чем уйти. Быстрый взгляд на панель Changes в конце сессии ловит большинство сюрпризов, пока
/rewindеще может их исправить.
Частые вопросы
Можно ли откатить изменения Claude Code после закрытия сессии?
Да, если возобновить ее: точки отката сохраняются вместе с диалогом, поэтому /rewind работает и после claude --resume, пока снимки не удалены (по умолчанию примерно 30 дней). Для более давних изменений нужен git или резервная копия.
Почему /rewind не вернул удаленный файл?
Скорее всего, файл удалила команда терминала вроде rm. Точки отката помнят только правки инструментами редактирования Claude. Проверьте Корзину, историю версий облачного диска или резервную копию.
Как откатить только один файл?
/rewind при восстановлении кода возвращает все файлы, которые Claude правил после выбранной точки. Чтобы вернуть один файл, используйте git (git restore --source=<версия> -- <файл>), историю версий диска или «Вернуть как было» в X-Filer.
Коротко
/rewind — самый быстрый откат внутри сессии, но он знает только то, что Claude правил своими инструментами. Для всего остального нужна история, и проще всего ее дает git — даже если вы ни разу не наберете команду git. Если хочется видеть версии агента и откатывать их кнопкой, попробуйте X-Filer.