Агент "починил" один баг и сломал ещё три функции. Знакомая ситуация. Короткий ответ: не просите агента откатить изменения словами, используйте git revert для опубликованных коммитов, git reset для локальных и /rewind, если работаете в Claude Code.
В статье разберём, чем эти три способа отличаются, когда какой брать и что делать, если коммитов вообще не было.
Три рабочих способа отката в 2026 году: git revert создаёт новый коммит и безопасен для командной работы, git reset --hard уничтожает коммит полностью и подходит только для локальной истории, /rewind в Claude Code откатывает код и переписку внутри сессии, но не трогает push, npm install и другие внешние команды. Ниже — таблица выбора и пошаговый план на случай паники.

Что делать в первую секунду, когда агент всё сломал?
Сначала остановите агента и посмотрите, что именно изменилось, а не просите "откатить" словами — это часто даёт ещё один слой кривых патчей.
Первая ошибка почти всех новичков: написать в чат "верни как было". Агент не хранит идеальную копию прошлого состояния в голове, он просто пытается угадать, что вы имели в виду, и правит поверх уже сломанного кода. Получается вторая поломка сверху первой.
Правильная последовательность простая. Посмотрите последние 10 коммитов командой git log --oneline -10. Затем откройте diff последнего коммита: git diff HEAD~1 HEAD. Только после этого решайте, что откатывать — конкретный коммит, файл или всю переписку с агентом.
Максим: «Мог просто засесть до пяти ночи и просто там править одну какую-то функцию, которая не работала. Если бы не терпение, в моменте я уже испотел, и мне хотелось просто всё это закрыть. Но я понимал, что это можно решить и нужно решить, чтобы идти дальше.»

Чем git revert отличается от git reset?
Git revert создаёт новый коммит, который отменяет предыдущий, и не трогает историю. Git reset физически удаляет коммит из истории и подходит только для того, что ещё не отправлено на удалённый сервер.
Разница звучит технически, но на практике решает всё. Revert безопасен для команды: коллеги, которые уже стянули ваш код, ничего не потеряют, потому что история осталась цельной, просто добавился ещё один коммит с обратными изменениями. Reset наоборот переписывает историю — если этот коммит уже кто-то скачал, у него в репозитории возникнет рассинхрон.
Практическое правило простое: работаете один и коммит ещё не запушен — берите reset. Коммит уже в общем репозитории или работает команда — только revert. В одном из разобранных туториалов по git это правило звучит буквально так: reset для приватной истории, revert для публичной.

Когда брать git reset --soft, mixed или hard?
Soft сохраняет изменения в staging, mixed (по умолчанию) возвращает их в рабочую область, hard стирает файлы полностью без возможности восстановления через сам git.
Три режима reset решают разные задачи, и путать их дорого. git reset --soft HEAD~1 удаляет коммит, но всё содержимое остаётся в индексе, готовое к новому коммиту — удобно, если просто хотели переписать сообщение или объединить два коммита в один. git reset --hard HEAD~1 убирает и коммит, и сами изменения из файлов, это самый жёсткий вариант.
| Команда | Что происходит с коммитом | Что происходит с файлами | Когда использовать |
|---|---|---|---|
| git reset --soft HEAD~1 | Удаляется | Остаются в staging | Переписать коммит, объединить два в один |
| git reset --mixed HEAD~1 | Удаляется | Остаются в рабочей области | Хочу перекоммитить по-другому |
| git reset --hard HEAD~1 | Удаляется | Уничтожаются | Агент точно сделал мусор, нужно стереть всё |
| git revert HEAD | Сохраняется, добавляется новый | Откатываются через новый коммит | Коммит уже запушен, работает команда |
Перед hard-reset всегда стоит проверить git status и убедиться, что вы не удаляете единственную копию нужных правок. Второй раз их брать будет неоткуда.

Как работает откат /rewind в Claude Code?
Двойное нажатие Esc или команда /rewind открывает меню чекпоинтов и откатывает код, переписку или обе части сразу до выбранного момента разговора.
Claude Code с версии 2.0 автоматически сохраняет снимок файлов перед каждой правкой агента. Нажали Esc дважды, когда строка ввода пуста, и открылось меню со списком всех промптов сессии. Выбираете точку, на которую хотите вернуться, и решаете, что восстановить: код, переписку или обе части сразу.
По данным официальной документации, checkpointing отслеживает все изменения, сделанные инструментами редактирования файлов Claude, а рестор-опции откатывают либо код, либо историю разговора, либо оба варианта.
Есть и промежуточный вариант — "Summarize from here": сообщения после выбранной точки сжимаются в краткое резюме без отката файлов. Полезно, когда просто нужно почистить контекст, а не отменять правки.

Что /rewind не может отменить?
Rewind откатывает только прямые правки файлов через встроенные инструменты Claude. Команды bash с внешним эффектом — git push, npm install, обращения к API — он не трогает.
Это главная ловушка новичков: они думают, что rewind это полноценная машина времени. Не совсем так. Если агент прогнал sed -i через bash или вызвал внешний API, эти последствия останутся, даже после отката разговора. Согласно разбору механики rewind, восстанавливаются файловые операции — правки, записи и удаления, которые Claude сделал после выбранной точки, а также обрезается история разговора до этого момента.
Поэтому правило для рискованных операций такое: перед крупным рефакторингом сначала коммитьте в git, потом уже давайте агенту карт-бланш. Rewind закрывает "локальный откат" внутри сессии, а git остаётся постоянной историей на случай, если сессия закроется или чекпоинты почистятся через 30 дней.
Git revert, git reset или /rewind — что выбрать вайбкодеру?
Если коммит ещё не запушен — reset. Если уже в общем репозитории — revert. Если правки внутри одной сессии Claude Code и push ещё не было — быстрее /rewind.
Три инструмента закрывают разные слои отката, и часто их приходится комбинировать. Rewind откатывает сессию агента за секунды, но не спасёт от того, что уже улетело в удалённый репозиторий. Revert работает на уровне git-истории и безопасен для команды. Reset — быстрый локальный нож, острый и без предохранителя.
| Ситуация | Инструмент | Риск |
|---|---|---|
| Агент сломал файлы в текущей сессии Claude Code, push не делали | /rewind (Esc Esc) | Низкий |
| Коммит локальный, ещё не запушен | git reset --hard HEAD~1 | Средний, файлы теряются |
| Коммит уже на GitHub, работает команда | git revert HEAD | Низкий, история сохраняется |
| Нужно поправить только последний коммит, не создавая новый | git commit --amend | Низкий |

Что делать, если коммитов вообще не было?
Незакоммиченные правки в рабочей области откатываются командой git checkout для конкретного файла или git checkout . для всех сразу.
Бывает проще: агент наломал дров, а вы ещё ничего не закоммитили. Тогда revert и reset не нужны вообще. Команда git checkout <имя_файла> откатывает конкретный файл до последнего коммита, а git checkout . возвращает в исходное состояние весь рабочий каталог. Если файлы уже добавлены в индекс через git add, сначала снимите их оттуда командой git reset HEAD <имя_файла>, а потом уже применяйте checkout.
Короткая проверка после каждой команды: git status. Она сразу показывает, что осталось в рабочей области, что в индексе и что уже закоммичено. Привычка, которая экономит вечера.
Пошаговый план на случай паники
Один порядок действий закрывает 90% ситуаций: посмотреть коммиты, посмотреть diff, выбрать между revert и reset, а для Claude Code сначала попробовать /rewind.
git log --oneline -10— понять, что вообще произошло за последние коммиты.git diff HEAD~1 HEAD— увидеть конкретные строки, которые изменились.- Работаете в Claude Code и push ещё не было — Esc Esc, выбрать точку до поломки, восстановить код и переписку.
- Коммит локальный и не запушен —
git reset --hard HEAD~1. - Коммит уже в общем репозитории —
git revert HEAD, затем обычныйgit push. - Правок в индексе вообще не было —
git checkout .для всей рабочей области.
Дальше не повторяйте тот же промпт слово в слово. Агент почти гарантированно наступит на те же грабли, если контекст не поменялся. Уточните формулировку, добавьте ограничение вида "не трогай файл X" и только потом запускайте задачу заново.

Глоссарий
- Коммит — зафиксированный снимок изменений в истории git.
- HEAD — указатель на текущий коммит, с которым сейчас работает git.
- Staging area (индекс) — промежуточная зона между рабочими файлами и коммитом, куда попадают файлы после
git add. - Чекпоинт — автоматический снимок файлов, который Claude Code делает перед каждой правкой агента.
- Rewind — команда Claude Code, откатывающая код и/или переписку до выбранной точки сессии.
- Force push — принудительная отправка изменённой истории в удалённый репозиторий, перезаписывает чужие коммиты.
Частые вопросы
Можно ли откатить push, который уже улетел в GitHub?
Да, но не через reset. Локально удалить коммит из истории и запушить force можно, только если вы работаете один. Для команды используйте git revert и обычный push без force — история останется чистой для всех.
Rewind в Claude Code заменяет git?
Нет. Rewind закрывает откат внутри одной сессии агента и не хранит историю дольше 30 дней. Для постоянной версионности и совместной работы git остаётся обязательным инструментом.
Что если git reset --hard стёр нужные файлы?
Если коммит существовал, есть шанс найти его через git reflog — эта команда хранит ссылки даже на удалённые коммиты некоторое время. Если правок в коммите не было вообще, восстановить их без бэкапа не получится.
Почему нельзя просто попросить агента "откатить всё как было"?
Агент не хранит точный снимок прошлого состояния в памяти между репликами так, как это делает git. Словесная просьба часто превращается в ещё один слой правок поверх уже сломанного кода.
В чём разница между /rewind и git commit --amend?
Rewind работает на уровне сессии агента и переписки, amend — на уровне одного git-коммита, добавляет к нему пропущенные файлы или правит сообщение без создания нового коммита.
Нужно ли коммитить перед каждым крупным запросом к агенту?
Да, это снижает риск. Коммит перед рискованной задачей даёт точку возврата даже если чекпоинты Claude Code почистятся или сессия закроется раньше времени.
Если хотите разобраться глубже с рабочим циклом AI-агентов, каталог инструментов и обзор Claude Code на VibeCoderz — хорошая точка старта, там же собраны актуальные цены и возможности. Полный список редакторов и агентов смотрите в каталоге AI-инструментов. Разбор конкретной ситуации с вашим проектом можно обсудить на консультации с Максимом.
Источники: документация Claude Code по checkpointing, разбор механики rewind на ClaudeLog.
Обновлено: июль 2026.