
Главное за минуту
- /rewind позволяет вернуть код, разговор или оба состояния к выбранной контрольной точке.
- Для отмены коммита в общей истории предпочтителен git revert: он не удаляет прежние коммиты.
- Контрольные точки не отслеживают изменения файлов через Bash и не заменяют постоянную историю Git.
Что выбрать для отката: /rewind, Git или отмену pull request
Чтобы откатить отслеженные изменения Claude Code, открой /rewind и выбери контрольную точку; чтобы отменить коммит в общей истории Git, используй git revert. Если изменения уже вошли в объединённый pull request, в GitHub предусмотрено создание нового pull request, отменяющего исходный коммит слияния.
Когда нужен возврат внутри сеанса
Контрольная точка сохраняет состояние кода перед запросом, который начинает ход Claude Code. Это позволяет ориентироваться на сообщения разговора: выбрать запрос, после которого работа пошла не туда, и вернуть доступное состояние файлов. Создание таких точек происходит автоматически во время работы с Claude.
Возврат пригодится и тогда, когда проблема касается разговора, а текущий код устраивает. В меню предусмотрено отдельное восстановление разговора с сохранением кода, а также совместное восстановление кода и разговора. Выбор зависит от того, какую часть работы ты хочешь вернуть к выбранной точке.
Когда нужна история репозитория
Для постоянной истории версий и совместной работы документация Claude Code рекомендует продолжать использовать Git или другую систему контроля версий. Коммиты, ветки и долговременная история остаются её задачей. Поэтому возврат внутри разговора не стоит воспринимать как замену работе с репозиторием.
До отправки изменений в удалённый репозиторий они существуют в локальной среде разработки. Это различие существенно для исправления коммитов: например, amend документация рекомендует применять к локальным коммитам, которые ещё никуда не отправлены. Перед выбором операции учитывай, осталась ли работа локальной.
- Для возврата отслеженных правок сеанса ориентируйся на контрольные точки Claude Code.
- Для отмены изменений опубликованного коммита в общей истории ориентируйся на git revert.
- Для отмены объединённого pull request используй предусмотренную GitHub операцию Revert.

Что проверить перед отменой изменений
До удаления локальных правок важно различить изменения файла, изменения в индексе и уже созданный коммит. Документация предлагает разные операции: отбрасывание правок рабочего каталога, снятие файла с индекса с сохранением содержимого и отмену изменений коммита. Эти действия дают разные результаты.
Находится ли файл в индексе
Индекс связан с подготовкой изменений через git add. Перед отменой неиндексированных изменений документация предлагает выполнить git status и убедиться, что файл не был добавлен в индекс. Начни с этой проверки, если собираешься отбросить правки конкретного файла, а не исправить уже созданный коммит.
Если задача состоит в том, чтобы убрать файл из индекса и продолжить работу над ним, удаление содержимого не требуется. Для этого предусмотрена команда git restore --staged <file>, которая сохраняет изменения. Здесь желаемый результат именно снятие с индекса, а не возврат файла к прежнему содержимому.
Что можно потерять при отмене
Изменения, которые никогда не были закоммичены, после потери, скорее всего, восстановить не удастся. Не рассчитывай на будущую команду восстановления как на гарантированную страховку перед отбрасыванием правок. Это ограничение особенно важно, когда работа существует в файлах, но ещё не сохранена коммитом.
Для основной или общей ветки документация GitLab прямо запрещает изменять историю коммитов. Если работа относится к такой ветке, учитывай это ограничение до выбора rebase или другой операции переписывания истории. Для отмены общей истории предпочтителен revert, сохраняющий прежние коммиты.
Что понадобится для сценария GitHub
Для отмены pull request нужны права записи в репозиторий. Описанный далее порядок взят из документации GitHub Enterprise Server 3.21. Перед действием проверь соответствующий раздел официальной документации для своей среды, особенно если расположение элементов интерфейса отличается.
- Выполни git status перед отменой неиндексированных изменений файла.
- Найди нужный коммит через git log, если отменяешь изменения коммита.
- Проверь права записи в репозиторий, если отменяешь pull request через GitHub.
Как различаются действия восстановления
| Действие | Что происходит |
|---|---|
| Restore code | Возвращает изменения файлов, сохраняя разговор. |
| Restore conversation | Возвращает разговор к выбранному сообщению, сохраняя код. |
| Restore code and conversation | Возвращает код и разговор к выбранной точке. |
| git restore --staged <file> | Убирает файл из индекса, сохраняя изменения. |
| git restore <file> | Отбрасывает изменения файла в рабочем каталоге. |
| git reset --soft HEAD^ | Отменяет последний коммит и возвращает изменения в индекс. |
| git revert HEAD | Создаёт новый коммит с изменениями, обратными последнему коммиту. |
Как вернуть код через меню /rewind
Меню /rewind показывает запросы, которые ты отправлял в течение сеанса. В нём нужно выбрать нужную точку, а затем действие. Ориентиром служит запрос разговора, поэтому сначала найди подходящий момент работы, после которого требуется отмена.
Открой меню и выбери точку
Для открытия меню есть команда /rewind и клавиатурный способ: двойное нажатие Esc при пустом поле ввода. Если собираешься пользоваться клавишей, условие пустого поля существенно. При наличии текста поведение будет другим, оно разобрано в разделе с проблемами.
- Введи команду /rewind.
- Выбери нужный запрос сеанса в открывшемся меню.
- Выбери Restore code для отмены изменений файлов с сохранением разговора.
Реши, что должно вернуться назад
Restore code and conversation возвращает к выбранной точке одновременно код и разговор. Выбирай этот вариант, когда нужен возврат обеих частей сеанса. Он отличается от восстановления файлов тем, что затрагивает и состояние беседы.
Restore conversation возвращает разговор к выбранному сообщению, сохраняя текущий код. Этот вариант соответствует ситуации, когда нужно изменить направление беседы, а существующее содержимое файлов тебя устраивает. Возврата файлов при выборе этого действия не происходит.
Restore code отменяет изменения файлов, сохраняя разговор. Такая комбинация нужна, когда обсуждение должно остаться, но файловые правки требуется вернуть назад. При выборе ориентируйся на сохранение беседы как на часть результата операции.
Почему набор действий бывает разным
Варианты Restore code и Restore code and conversation появляются при наличии у выбранной точки отслеженных изменений файлов для отмены. Поэтому у разных сообщений меню может отличаться. Само присутствие запроса в списке ещё не означает, что для него будет доступно восстановление кода.

Как изменить разговор или попробовать другой подход
В меню возврата есть действия со сжатием разговора. Они решают задачу работы с контекстом, то есть содержимым беседы, доступным Claude, и не меняют файлы на диске. Если цель состоит в отмене кода, не подменяй её выбором сжатия.
Как выбрать часть разговора для сжатия
Summarize from here сжимает разговор от выбранной точки до конца в краткое изложение. По документации это освобождает место в контекстном окне. Направление действия начинается с выбранного момента и продолжается к последующим сообщениям, поэтому расположение точки имеет значение.
Summarize up to here сжимает разговор до выбранной точки, сохраняя последующие сообщения. Этот вариант подходит по смыслу действия, когда требуется сократить предыдущую часть беседы и оставить более позднюю часть без такого сжатия. Он отличается от Summarize from here направлением обработки разговора.
- Summarize from here: сжатие от выбранной точки до конца разговора.
- Summarize up to here: сжатие до выбранной точки с сохранением последующих сообщений.
- При сжатии файлы на диске не меняются, а исходные сообщения остаются в записи сеанса.
Как сохранить исходный сеанс
Чтобы попробовать другой подход и сохранить исходный сеанс без изменений, документация предлагает /branch или claude --continue --fork-session. Рассматривай эти варианты, если задача заключается в отдельном продолжении работы, а не в возврате текущего разговора назад. Это предусмотренный способ сохранить исходную линию сеанса.
После сжатия исходные сообщения остаются в записи сеанса, и Claude может обращаться к их деталям. Поэтому краткое изложение не следует описывать как удаление исходных сообщений из записи. При этом сжатие по-прежнему не выполняет отмену содержимого файлов.
Почему /rewind не восстанавливает ожидаемые файлы
У контрольных точек есть ограничения по происхождению изменений и виду файлов. Чтобы понять результат возврата, важно учитывать, кто и каким способом менял код: текущий сеанс Claude, команда Bash, субагент или параллельная работа. Не каждая такая правка попадает в механизм контрольных точек.
Esc очистил текст, а меню не открылось
Когда поле ввода содержит текст, двойное нажатие Esc очищает его вместо открытия меню. Такое поведение само по себе не означает проблему с контрольными точками. Для клавиатурного открытия меню поле должно быть пустым; также можно воспользоваться командой /rewind.
Очищенный текст сохраняется в истории ввода. После завершения работы с меню его можно вернуть клавишей Up. Это касается текста запроса в поле ввода, поэтому не путай такую историю с восстановлением файлов проекта.
У сообщения стоит No code restore
Сообщение, отправленное во время работы Claude, может получить отметку No code restore. Для отмены файловых изменений этой части сеанса документация направляет к запросу, начавшему ход. Именно его нужно выбирать вместо сообщения, поступившего уже во время выполнения работы.
Возврат к началу хода отменяет файловые изменения Claude за весь ход, включая правки до поступления промежуточного сообщения. Учитывай ширину такого возврата: он не ограничивается моментом, когда ты отправил уточнение. Выбранная точка относится к началу соответствующего хода.
- Открой меню командой /rewind.
- Выбери запрос, который начал нужный ход.
- Выбери Restore code либо Restore code and conversation.
Часть изменений осталась после возврата
Контрольные точки не отслеживают изменения файлов, сделанные командами Bash. Поэтому происхождение правок важно даже внутри работы с Claude Code: изменение через Bash не становится отслеженным для возврата лишь потому, что команда выполнялась в ходе работы с кодом.
Для других субагентов документация описывает ограничение: возврат восстанавливает файлы, которые Claude уже редактировал в основном разговоре. Правки такого субагента в остальных файлах сохраняются. Для их отмены предлагается использовать Git, а не рассчитывать на более широкий охват выбранной контрольной точки.
Ручные изменения вне Claude Code и правки параллельных сеансов обычно не фиксируются. Важное исключение касается изменений тех же файлов, с которыми работает текущий сеанс. Поэтому нельзя одинаково описывать поведение для отдельного файла и файла, который также редактируется в текущем разговоре.
Файлы с символическими или жёсткими ссылками контрольные точки не восстанавливают. Это отдельное ограничение механизма, которое нужно учитывать, когда ожидаемый файл не вернулся к прежнему состоянию. Наличие подходящего сообщения в меню не отменяет это ограничение.
Сколько хранятся контрольные точки и что означает No files were restored
На дату проверки, 18 октября 2026, документация указывает хранение снимков файлов для 100 последних контрольных точек сеанса. Это лимит снимков внутри сеанса, а не обещание постоянного архива проекта. Для долговременной истории документация отдельно рекомендует систему контроля версий.
Доступен ли возврат после возобновления
Контрольные точки сохраняются вместе с разговором, поэтому /rewind доступен после возобновления сеанса. Завершение текущей работы с разговором само по себе не означает немедленную потерю возможности возврата. При этом доступность команды нужно отличать от сохранности снимков конкретной старой точки.
По состоянию на 18 октября 2026 снимки файлов сеанса по умолчанию удаляются при очистке примерно через 30 дней после последнего сохранения снимка. Здесь важны и слово «примерно», и момент отсчёта. Документация связывает его с последним сохранением снимка сеанса.
Что делать с отсутствующими снимками
Возврат к точке, снимки которой уже удалены, может завершиться сообщением No files were restored. Это одна из описанных причин такого результата. Для более долгого хранения документация предлагает параметр cleanupPeriodDays; порядок его настройки проверь на официальной странице Claude Code.
Не воспринимай изменение срока хранения как описанный способ вернуть уже удалённые снимки. Рекомендация cleanupPeriodDays относится к более долгому сохранению снимков. Для работы с постоянной историей проекта ориентируйся на Git, как рекомендует документация Claude Code.
- Лимит снимков: 100 последних контрольных точек сеанса на дату проверки.
- Удаление по умолчанию: примерно через 30 дней после последнего сохранения снимка, по данным на дату проверки.
- Параметр для более долгого хранения: cleanupPeriodDays.

Как отменить локальные правки файла или снять их с индекса
В Git различай удаление изменений из рабочего каталога и снятие с индекса с сохранением правок. Для первого действия документация показывает git restore <file>, для второго используется git restore --staged <file>. Похожее название команды не означает одинаковый результат для содержимого файла.
Как отбросить ненужные правки файла
Команда git restore появилась в Git версии 2.23.0. В документации Git она используется для отбрасывания изменений файла в рабочем каталоге. Если читаешь инструкции с разными командами отмены, учитывай версию и конкретное назначение операции, а не ориентируйся на слово «откат» без уточнений.
В документации GitLab также приведена команда git checkout -- <file> для перезаписи локальных изменений файла. Это вариант операции с содержимым файла. Он не равнозначен снятию с индекса, при котором задача состоит в сохранении внесённых правок.
- Выполни git status.
- Проверь, что нужный файл не добавлен в индекс через git add.
- Выполни git restore <file> для отбрасывания изменений выбранного файла в рабочем каталоге.
Как сохранить правки, но убрать их из индекса
Выполни git restore --staged <file>, если нужно убрать из индекса конкретный файл, сохранив изменения. Такой результат позволяет отделить решение о включении файла в коммит от решения о сохранении его содержимого. Сама команда в этом сценарии предназначена для снятия с индекса.
Для снятия с индекса всех изменений с сохранением правок документация приводит git reset. Здесь команда указана без дополнительных параметров. Не переноси описание результата этого варианта на другие формы reset: перед их использованием проверь назначение нужной формы в официальной документации Git.
Как исправить последний коммит или отменить опубликованный
Если изменения уже находятся в коммите, сначала найди его в истории через git log. Эта команда помогает определить SHA, идентификатор нужного коммита. По умолчанию git log показывает коммиты выбранной ветки, что важно учитывать при поиске изменений из другой линии работы.
Как отменить изменения, сохранив общую историю
Команда git revert <commit-B-SHA> отменяет изменения, внесённые коммитом B. Выбирай идентификатор именно того коммита, чьи изменения нужно отменить. Описанная операция относится к изменениям выбранного коммита, а не к произвольному возврату проекта в понравившийся момент истории.
Для последнего коммита приведён вариант git revert HEAD. Он создаёт новый коммит с изменениями, обратными последнему коммиту. В общей истории revert предпочтителен потому, что не удаляет из неё существующие коммиты.
- Выполни git log для поиска нужного коммита.
- Найди SHA коммита, изменения которого требуется отменить.
- Выполни git revert <commit-B-SHA> с найденным идентификатором.
Как вернуть последний коммит в индекс
Команда git reset --soft HEAD^ отменяет последний коммит и возвращает его изменения в индекс. Это соответствует задаче снова получить подготовленные изменения вместо последнего коммита. Для основной или общей ветки сохраняется запрет документации на изменение истории.
Как добавить забытый файл через amend
Если после коммита обнаружился забытый файл, пример из документации Git предлагает сначала добавить его через git add forgotten_file, затем выполнить git commit --amend. В результате остаётся один коммит: новый результат заменяет предыдущий. Это исправление содержимого последнего коммита, а не отдельная отмена его правок.
Применять amend следует к локальным коммитам, которые ещё никуда не отправлены. Изменение уже отправленного коммита с последующей принудительной отправкой ветки создаёт проблемы для коллег. Поэтому перед amend учитывай состояние публикации, а не только то, какой файл оказался пропущен.
Как удалить отдельный локальный коммит и искать прежнее состояние
Интерактивный rebase, команда git rebase -i, позволяет изменять, объединять и удалять коммиты. Это инструмент изменения истории. Пример ниже касается удаления B из последовательности A-B-C-D и должен рассматриваться с учётом запрета изменять историю основной или общей ветки.
Как удалить B из последовательности A-B-C-D
В примере точкой для команды служит A, а действие drop назначается коммиту B. Для остальных коммитов сохраняется pick. Не меняй действия остальных строк по аналогии с удаляемым коммитом: описанная последовательность рассчитана на выборочное удаление B.
- Выполни git rebase -i A.
- Замени pick на drop перед коммитом B.
- Оставь pick для остальных коммитов.
- Сохрани изменения в редакторе.
- Выйди из редактора.
Как отказаться на этапе редактирования
Если решил остановить rebase на этом этапе, документация предлагает удалить незакомментированные строки и сохранить файл. Простого закрытия редактора для описанного отказа недостаточно. Указание относится к работе с редактируемым списком действий, поэтому не переноси его на произвольный этап операции.
Что искать через reflog и чего он не обещает
Команда git reflog show позволяет просматривать историю репозитория и отслеживать прежние коммиты. Она полезна как инструмент поиска предыдущих состояний истории. Однако само наличие такого инструмента не означает, что нужный старый коммит сохранился и доступен для восстановления.
Git регулярно очищает коммиты, недостижимые из веток или тегов, поэтому доступны не все прежние локальные коммиты. Есть и обратное условие: очистка может не удалить старые коммиты после переписывания истории, если на них ещё указывают ссылки. Учитывай обе стороны этого поведения.
Переключение на конкретный коммит переводит репозиторий в detached HEAD, состояние вне какой-либо ветки. Переключение на старую версию отдельного файла имеет другой результат: указатель HEAD не перемещается, ветка и коммит остаются прежними. Поэтому просмотр состояния коммита и возврат версии файла не стоит смешивать.
Как отменить объединённый pull request в GitHub
Отмена объединённого pull request создаёт новый pull request, который отменяет исходный коммит слияния. На этом процесс не заканчивается: документация отдельно указывает объединение получившегося pull request. Порядок ниже соответствует GitHub Enterprise Server 3.21.
Как пройти отмену в интерфейсе
Начни с исходного pull request, изменения которого требуется отменить. Нужная кнопка находится в его нижней части. Для выполнения операции требуются права записи в репозиторий; это условие доступа к отмене, а не дополнительный выбор способа восстановления.
- Нажми Pull requests под названием репозитория.
- Открой в списке pull request, который требуется отменить.
- Нажми Revert в нижней части pull request.
- Объедини созданный pull request.
Почему кнопки нет или отмена требует другого действия
Если Revert не отображается, документация предлагает обратиться к администратору репозитория за правами записи. Это предусмотренное действие для описанной ситуации. Не делай из отсутствия кнопки вывод, что изменения уже нельзя отменить: сначала проверь требуемые права.
При конфликтах слияния может потребоваться отмена отдельных коммитов. То же условие документация указывает для исходного pull request, объединённого вне GitHub. В этих случаях сценарий отмены через интерфейс может потребовать перехода к работе с конкретными коммитами.
Что уточнить в официальной документации перед работой
Для долгой истории и совместной работы сохраняй ориентацию на Git, а возможности контрольных точек оценивай с учётом их срока хранения и охвата файлов. Если нужная работа относится к Bash или правкам вне отслеживаемого сеанса, ограничения /rewind становятся частью выбора способа отмены.
Версия и доступность контрольных точек
В анонсе Anthropic контрольные точки представлены вместе с расширением VS Code и версией 2.0 терминального интерфейса. Это сведения об анонсе возможностей, а не указание актуальной версии установленного у тебя приложения. Для текущей установки ориентируйся на официальную документацию Claude Code.
Согласно анонсу, обновления терминала и контрольные точки доступны пользователям Claude Code после обновления локальной установки. Если нужного поведения нет, проверь официальный порядок обновления. Сам анонс связывает получение этих возможностей с обновлением установленного приложения.
Параметры хранения и условия выбранной операции
Перед настройкой хранения проверь актуальное описание cleanupPeriodDays. По данным на 18 октября 2026 этот параметр предлагается для более долгого сохранения снимков, а стандартная очистка описана как происходящая примерно через 30 дней после последнего сохранения снимка. Не превращай приблизительный срок в точную гарантию.
- Проверь актуальные условия хранения снимков и описание cleanupPeriodDays в документации Claude Code.
- Сверь назначение операции Git с результатом, который нужен: снятие с индекса, отбрасывание файла или отмена коммита.
- Уточни права записи и порядок отмены pull request для используемой среды GitHub.

Частые вопросы
Можно ли откатить код, сохранив переписку с Claude?
Да, выбери Restore code. Этот вариант отменяет изменения файлов и сохраняет разговор; он появляется при наличии отслеженных изменений для отмены у выбранной точки.
Почему двойное нажатие Esc удаляет запрос?
Если поле ввода заполнено, двойное нажатие Esc очищает текст вместо открытия меню. После работы с меню текст можно вернуть клавишей Up из истории ввода.
Можно ли использовать /rewind после возобновления сеанса?
Да, контрольные точки сохраняются вместе с разговором. Однако восстановление файлов зависит от сохранности снимков: удалённые снимки могут привести к сообщению No files were restored.
Почему у уточняющего сообщения стоит No code restore?
Так может быть отмечено сообщение, отправленное во время работы Claude. Для отмены выбери запрос, начавший ход; возврат затронет файловые изменения за весь этот ход, включая правки до уточнения.
Отменит ли /rewind изменения, сделанные командой Bash?
Контрольные точки не отслеживают изменения файлов, сделанные командами Bash. Не рассчитывай на восстановление этих правок через выбранную точку разговора.
Как отменить последний коммит, уже находящийся в общей истории?
Для общей истории предпочтителен git revert. Вариант git revert HEAD создаёт новый коммит с изменениями, обратными последнему, сохраняя прежние коммиты истории.
Можно ли восстановить правки, которые не попали в коммит?
После потери незакоммиченных изменений восстановление, скорее всего, не удастся. Для контрольных точек Claude Code дополнительно действуют ограничения охвата и сохранности снимков, поэтому гарантировать возврат таких правок нельзя.
Что делать, если в pull request нет кнопки Revert?
Документация GitHub предлагает запросить права записи у администратора репозитория. Права записи требуются для отмены pull request.
Источники и проверка
- Revert and undo changes, docs.gitlab.com (первоисточник). Прочитано 18 октября 2026.
- 2.4 Git Basics - Undoing Things, git-scm.com (первоисточник). Прочитано 18 октября 2026.
- Checkpointing - Claude Code Docs, code.claude.com (первоисточник). Прочитано 18 октября 2026.
- Enabling Claude Code to work more autonomously, anthropic.com (первоисточник). Прочитано 18 октября 2026.
- Reverting a pull request - GitHub Enterprise Server 3.21 Docs, docs.github.com (первоисточник). Прочитано 18 октября 2026.
- Undoing Changes in Git | Atlassian Git Tutorial, atlassian.com (первоисточник). Прочитано 18 октября 2026.
Подготовлено с помощью ИИ по первоисточникам и проверено автоматически: факты, числа и цитаты сверены с источниками. Человек статью перед выходом не читал. Если нашёл ошибку, напиши через контакты.