Гайд · Claude Code · сентябрь 2026

Как откатить изменения Claude Code: /rewind, git и 5 путей

Claude Code внёс правку, а то, что вчера работало, сегодня не открывается или показывает не то. 5 путей вернуть рабочее состояние - какой сработает в твоей ситуации, зависит от того, ГДЕ именно случилась поломка: в самом чате с Claude Code, отдельной командой мимо чата, или правка вообще уже ушла в сохранённую версию проекта

Мой собственный прогон 4 сентября 2026 года: я собрал тестовый проект, сделал три сохранения подряд, третье специально сломал - и вернул рабочую версию одной командой, не потеряв ни одной из трёх записей истории. Полный вывод команд лежит рядом со статьёй, без сокращений

Прямо сейчас нажми Esc дважды при пустом поле ввода - откроется список твоих последних сообщений, и по каждому можно вернуть код и разговор к тому моменту. Если правка уже вышла из этой сессии или файл пропал отдельной командой мимо самого чата, тот же список не поможет - тогда нужна система сохранения версий, и дальше в статье сказано, какая именно команда

Первое, что нужно понять: какой инструмент делал правку

Официальная страница документации Claude Code про Checkpointing - меню действий /rewind и список точек восстановления
Так выглядит официальная документация Anthropic про /rewind - оттуда взяты точные формулировки меню действий, разобранные в статье ниже

Прежде чем выбирать путь отката, ответь себе на один вопрос: правку внёс сам Claude Code через свои инструменты правки файлов в чате, или файл пропал отдельной командой мимо самого чата (стёр, переименовал, перезаписал одной строкой)? От ответа зависит всё дальше

Разница критична, потому что встроенная история Claude Code видит только первое. По официальной документации Anthropic, чекпойнты Claude Code отслеживают ТОЛЬКО изменения, сделанные его собственными инструментами правки файлов - команды вроде rm file.txt, mv old.txt new.txt или cp source.txt dest.txt, введённые отдельно от чата, эта история не видит и отменить не может

Кто сломалВидит ли встроенная история Claude CodeКакой путь дальше
Сам Claude Code правкой файла в чатеДаEsc дважды или /rewind - путь 1
Отдельная команда мимо чата (rm, mv, cp)Нетсистема сохранения версий - пути 2 и 3, либо ручная копия - путь 4
Правка вышла из этой сессии Claude CodeНет, история живёт с сессиейсистема сохранения версий или ручная копия

Таблица прокручивается вбок →

Если не уверен, откуда пришла поломка - начни с пути 1, он самый быстрый и ничем не рискует. Не сработал - переходи к путям с сохранением версий ниже

Путь 1: Esc дважды или /rewind - откат прямо в чате Claude Code

Что делаешь: в окне Claude Code, там же где ты обычными словами пишешь ИИ задачи, нажми клавишу Esc два раза подряд, когда поле ввода пустое. Если хочешь то же самое текстовой командой - впиши в это же поле /rewind и нажми Enter

Что делать с этим дальше, разобрано в статье Безопасность ИИ-агентов

Путь 1 на практике: /rewind

  1. Что нажать Esc дважды подряд в пустом поле ввода, либо впиши команду /rewind и нажми Enter. Если в поле уже есть текст - двойной Esc сначала просто его сотрёт, историю можно вернуть стрелкой вверх
  2. Что увидишь на экране откроется список твоих последних сообщений в этом разговоре. Выбираешь нужную точку - и появляется меню из нескольких действий
  3. Что выбрать в меню «Restore code and conversation» вернёт и файлы, и переписку к тому моменту. «Restore code» - только файлы, переписка останется как есть. «Restore conversation» - только переписка, файлы не тронет
  4. Что это тебе даёт секундный откат без единой отдельной команды - подходит, когда правку в файл вносил сам Claude Code в этой же сессии

По документации Anthropic, снимок состояния делается автоматически перед каждым твоим сообщением, и хранится 100 последних таких точек за сессию - удаляются они вместе с сессией примерно через 30 дней. Если ты выходил из Claude Code и зашёл заново тем же проектом (команда /resume), список точек сохраняется и доступен так же

Ограничение, о котором стоит знать заранее: путь 1 НЕ откатывает правки другого параллельного помощника (субагента), если тот работал в фоне, и не восстанавливает файлы, которые в проекте являются симлинками или жёсткими ссылками - для них Claude Code честно покажет предупреждение, что часть файлов пропущена

Если поломка случилась не через правку файла в чате, а через отдельную команду мимо чата - Esc и /rewind её не увидят вообще, это подтверждает и статья с более широким разбором защиты - безопасность автономных ИИ-агентов: 4 риска 2026 года, там прямо сказано: встроенная история Claude Code «не спасает» от команд вроде rm или mv, потому что видит только правки самого агента в чате

Как понять, что у проекта уже включена система сохранения версий

Прежде чем переходить к путям 2 и 3, стоит проверить один момент: если система сохранения версий у проекта вообще не подключена, команды git restore и git revert работать не будут - они умеют возвращать только то, что уже было сохранено этой же системой хотя бы раз

Проверка простая и не требует от тебя знания команд:

Проверка перед путями 2 и 3

  1. Что спросить напиши Claude Code прямым текстом: «есть ли у этой папки проекта включённая система сохранения версий, и если да - когда было последнее сохранение?»
  2. Что увидишь на экране либо подтверждение с датой последнего сохранения, либо честный ответ, что системы нет и она не подключена
  3. Что это тебе даёт если системы нет - сразу переходи к пути 4 (ручная копия), не теряя время на команды, которые не сработают

Если система есть, но последнее сохранение было давно (до нескольких твоих последних правок) - откат вернёт файл не к вчерашней рабочей версии, а к той старой точке. Это стоит знать заранее, а не выяснять после команды

Путь 2: git restore - когда правка ещё не сохранена как отдельная версия

Что делаешь: если у твоего проекта уже включена система сохранения версий (проверил в разделе выше), и последняя правка ещё не оформлена отдельным сохранением - команда git restore вернёт файл к предыдущему сохранённому состоянию

Я проверил эту команду своим прогоном: взял тестовый файл, изменил его содержимое, не сохраняя правку отдельной версией, и одной командой git restore вернул исходный текст обратно - файл встал ровно таким же, каким был

Путь 2 на практике: git restore

  1. Куда написать попроси Claude Code словами: «верни файл к последней сохранённой версии, ничего не потеряв» - он выполнит нужную команду сам, тебе не обязательно знать её название
  2. Что увидишь на экране короткое подтверждение, что файл возвращён, и сам файл на экране снова показывает старое содержимое
  3. Что это тебе даёт отменяется именно та правка, которая ещё не была сохранена отдельной точкой - как будто её и не вносили
Официальная документация git-restore на git-scm.com с флагами --staged и --worktree и примерами команд
Официальная документация git-restore - команда для отмены незакоммиченной правки файла

Путь 3: git revert - когда сломанная правка уже сохранена как версия

Что делаешь: если поломка уже попала в отдельное сохранение (версию) проекта, git restore тут не поможет - нужна команда git revert. Она создаёт НОВОЕ сохранение, которое отменяет действие плохого, и при этом ни одна старая запись истории не пропадает - все версии остаются видны, просто последняя из них снова рабочая

В моём прогоне это выглядело так: три сохранения подряд, третье - сломанная версия. Одна команда git revert вернула файл к содержимому второго сохранения, а в списке версий остались видны все четыре записи - три исходных плюс новая, отменяющая

Путь 3 на практике: git revert

  1. Куда написать попроси Claude Code: «последнее сохранение сломало проект, отмени его новой версией, не удаляя историю» - формулировка «не удаляя историю» важна, она отличает revert от более резких команд ниже
  2. Что увидишь на экране сообщение о новой версии с пометкой «Revert» в названии, и файл снова показывает рабочее содержимое
  3. Что это тебе даёт откат без потери ни одной прежней записи - если через день окажется, что откатывать не стоило, есть куда вернуться и это тоже
Официальная документация git-revert на git-scm.com - команда создаёт новую запись версии, отменяющую действие прежней
Официальная документация git-revert - откат без стирания истории проекта

Есть и более резкая команда для этого же случая - она отбрасывает несохранённые изменения без возможности их вернуть, и я сознательно не привожу её тестовый прогон в этой статье: слишком легко зацепить лишнее, если формулировка задачи Claude Code не была предельно точной. Если действительно нужен именно такой резкий откат - проси его отдельным явным сообщением и предварительно сохрани текущее состояние на всякий случай, а не проси «на автомате»

Путь 4: ручная копия папки - когда система сохранения версий вообще не подключена

Что делаешь: самый простой путь без единой команды. Скопируй всю папку проекта целиком и добавь к имени копии сегодняшнюю дату - например, «мой-сайт-4-сентября». Это займёт около минуты и не требует знания системы сохранения версий вообще

Путь 4 на практике

  1. Что сделать ДО следующей правки скопируй папку проекта, переименуй копию с сегодняшней датой в конце названия
  2. Если правка уже сломала проект, а копии нет спроси Claude Code: «покажи все файлы, которые ты менял за последнюю просьбу» - и отмени вручную только их, не трогая остальное
  3. Что это тебе даёт страховку, которая работает даже без системы сохранения версий и даже если Claude Code вообще не видит поломку своей историей - потому что копия лежит отдельно от проекта, её не может задеть ни одна правка внутри самого проекта

Этот путь медленнее остальных и требует, чтобы копия была сделана ДО поломки, а не после - назад в прошлое ни один инструмент не откатит, если точки сохранения не существовало вообще. У соседней статьи есть более подробный разбор этой же дисциплины на уровне процесса доработки целиком, не только механики отдельной команды - собрал продукт на ИИ - что дальше: дорабатывай, не ломая

Что вернёт каждый путь: код, разговор или оба

Четыре пути выше возвращают разные вещи, и путаница именно здесь чаще всего приводит к тому, что человек откатывает не то

ПутьЧто возвращаетЖивёт ли после закрытия Claude Code
Esc дважды / /rewindКод, переписку или оба - выбираешь в менюДа, вместе с сессией, около 30 дней
git restoreТолько содержимое файла, до последней сохранённой версииДа, пока существует папка проекта
git revertТолько содержимое файла, новой версией поверх старойДа, постоянно, это часть истории проекта
Ручная копия папкиВсё содержимое папки целиком, как отдельный слепокДа, пока копия физически лежит на диске

Таблица прокручивается вбок →

Заметь: ТОЛЬКО путь 1 умеет возвращать саму переписку с Claude Code отдельно от кода - если тебе важно вернуть не файлы, а именно то, что обсуждалось в чате, остальные пути этого не делают вообще, потому что они работают с файлами, а не с разговором

Ловушка: откат вернул больше, чем ты хотел

Частая ошибка новичка: правок было несколько подряд, что-то сломалось на третьей, а откат возвращает файл к состоянию ПЕРВОЙ - и вместе со сломанной третьей правкой пропадают и вполне рабочие вторая с первой

Это происходит, когда точка отката выбрана слишком далеко назад. У каждого пути своя точность:

ПутьНасколько точно можно выбрать точкуЧто делать, если правок было несколько
Esc дважды / /rewindТочно - список показывает КАЖДОЕ твоё сообщение отдельноВыбирай точку сразу перед той правкой, что сломала, не раньше
git restoreТолько последнее сохранённое состояниеЕсли сохранений было несколько, восстановит именно последнее
git revertТочно - отменяет ровно ОДНО названное сохранениеМожно откатить только третью правку, не трогая первую и вторую
Ручная копия папкиЗависит от того, сколько копий ты сделалЕсли копия одна - вернёшься именно к ней, какой бы старой она ни была

Таблица прокручивается вбок →

Практический вывод: если правок было несколько и сломалась не первая из них, путь 3 (git revert) точнее пути 4 (ручная копия) - он умеет отменить ровно одну конкретную правку, не трогая соседние

Разница между откатом кода и откатом разговора на практике

В меню Esc/rewind три разных выбора не для галочки, а для трёх разных реальных ситуаций - и путать их означает либо потерять историю переписки, к которой ты собирался вернуться, либо оставить на диске сломанный файл

Когда какой выбор нужен:

  • «Restore code and conversation» - используй, если хочешь полностью вернуться к тому моменту: и файлы, и то, о чём вы говорили с Claude Code, встанут ровно как были. Это самый частый выбор при обычной поломке
  • «Restore code» - используй, если файлы сломались, но переписка с объяснениями и контекстом задачи тебе ещё нужна для следующей просьбы. Файлы вернутся, а разговор останется как есть
  • «Restore conversation» - используй редко: когда файлы уже в порядке (например, ты сам их поправил руками), а вот переписка увела разговор куда-то не туда, и хочется вернуться к более раннему сообщению, не трогая при этом сами файлы

Самая частая ошибка новичка на этом шаге - машинально выбрать первый пункт в списке, не читая остальные. Если не уверен, какой нужен - «Restore code and conversation» безопаснее всего: он не оставит рассинхрона между тем, что лежит в файлах, и тем, что Claude Code помнит о задаче

Когда ни один путь не помогает

Бывает ситуация хуже: файл не просто изменён, а удалён отдельной командой, и точки сохранения не было вообще ни в одной форме. Здесь Esc и /rewind бессильны по построению (встроенная история не видит команд, введённых мимо чата), а система сохранения версий и ручная копия не помогают, если их не завели заранее. Это отдельный, более узкий случай - куда именно смотреть в поисках случайно оставшейся копии данных, разбирает соседняя статья про конкретно эту ситуацию: что делать, если ИИ удалил базу данных: 3 места, где лежат копии

Если ты сейчас читаешь эту статью ДО того, как что-то сломалось, лучшая инвестиция времени - десять минут на то, чтобы включить сохранение версий заранее. Полный разбор трёх слоёв защиты (не только отката, а всей системы) - в отдельном гайде безопасность автономных ИИ-агентов: 4 риска 2026 года

Как понять, что сработавший откат вернул именно то, что нужно

После любого из четырёх путей проверка одна и та же: открой продукт и пройди то, что уже работало вчера, теми же кнопками и теми же действиями. Не «выглядит нормально», а конкретно - та же страница открывается, та же кнопка нажимается, тот же результат выходит

Если откат вернул рабочее состояние, но проблема всё равно осталась - значит поломка случилась раньше, чем та точка, к которой ты вернулся. Тогда откатывайся ещё на один шаг назад, если такая точка есть, и проверяй заново

Свои сохранения версий я делаю тем же способом, что описан выше - той же системой, без отдельных инструментов поверх неё

Куда идти дальше на этом же сайте

Источники

Ниже страницы, которые я открывал сам при подготовке этой статьи 4 сентября 2026 года:

  • Anthropic, документация Claude Code, раздел Checkpointing - что снимает автоматический снимок, меню действий /rewind, срок хранения 30 дней, ограничения по отдельным командам мимо чата и по параллельным помощникам - code.claude.com/docs/en/checkpointing, голый адрес https://code.claude.com/docs/en/checkpointing
  • Git, официальная документация команды git-restore - флаги --staged/--worktree/--source, отличие от команды переключения версий целиком - git-scm.com/docs/git-restore
  • Git, официальная документация команды git-revert - создание новой записи версии, отменяющей действие прежней, без стирания истории - git-scm.com/docs/git-revert
  • Git, официальная документация команды git-reset - более резкий откат, отбрасывающий несохранённые изменения - git-scm.com/docs/git-reset
  • Anthropic, документация Claude Code, общий раздел рекомендаций по работе - code.claude.com/docs/en/best-practices

Памятка: пять путей отката правки Claude Code

Пять строк, по которым проходит выбор

Сохрани себе

  • Правку делал сам Claude Code в этой же сессии - Esc дважды или /rewind, самый быстрый вариант
  • Правка ещё не сохранена отдельной версией - git restore
  • Правка уже сохранена версией, а версия оказалась плохой - git revert, история не теряется
  • Системы сохранения версий вообще нет - ручная копия папки с датой, сделанная ДО поломки
  • Файл удалён отдельной командой мимо чата и точки сохранения не было - это уже не откат, а поиск копии в других местах

Порог входа

Первая точка сохранения бесплатна, следующая привычка тоже

Точку сохранения, узкую формулировку задачи и проверку сразу после - всё это можно начать применять на своём продукте уже сегодня, без единой новой установки

Три дня, бесплатно, доступ открывается сразу, ждать даты не нужно

Забрать путёвку в ИИ-Лагерь

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

Частые вопросы

Что делать, если я не понимаю, включена ли у меня система сохранения версий?

Спроси Claude Code прямым текстом: «есть ли у этой папки отдельная система сохранения версий, и если нет - подключи её». Он ответит и, если нужно, подключит сам, тебе не нужно знать команды

Можно ли откатить только часть правки, а не всю целиком?

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

Что, если после отката появилась новая проблема?

Проверь глазами то, что работало до отката: если и оно перестало работать - откатись ещё на одну точку назад. Если проблема новая и раньше её не было - это уже не про откат, а про обычную новую правку, начинай с описания задачи заново

Почему нельзя просто попросить Claude Code «верни как было»?

Можно, и часто это сработает - но формулировка «как было» неточная, и ИИ придётся угадывать, к какому именно моменту. Точнее работает конкретика: «верни файл к состоянию перед последней правкой» или прямая просьба использовать /rewind

Сколько времени хранятся точки отката?

У встроенной истории Claude Code (путь 1) - около 30 дней вместе с сессией, срок настраиваемый. У системы сохранения версий (пути 2 и 3) - постоянно, пока существует сама папка проекта с её историей. У ручной копии (путь 4) - пока копия физически лежит на диске