■ space · машинное отделение · fig 1

■ сначала ответ

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

Запушено и другие тянут ветку? Revert — единственная вежливая отмена.

Закоммичено и потеряно? Спасение через reflog — брошенные коммиты остаются достижимыми ~90 дней.

18состояний на панели
4команд покрывают весь бардак
~90дней спасение остаётся открытым

01СОРТИРОВЩИК, ВЖИВУЮ

восемнадцать состояний выстраиваются в бункере — клавиши 1 · 2 · 3 бросают рычаги, барабан сортирует талон

РИС 1 · СОРТИРОВЩИК ОТМЕНклавиши 1 · 2 · 3 — или кнопки
СОРТИРОВЩИК ОТМЕН18 СОСТОЯНИЙ → 4 ЖЁЛОБА + СПАСЕНИЕ18СОСТОЯНИЙ В ОЧЕРЕДИСПАСЕНИЕ · ~90 ДНЕЙВ1 ГДЕВ2 СОХРАНИТЬВ3 СОВМЕСТНЫЙSOFTСМЕШАННЫЙHARDREVERT+ --force-with-leaseОТКАЗАНО

ГДЕ ЗАПУШЕНО · НАПРАВЛЕНО REVERT · ВЕРДИКТ ЕДИНСТВЕННАЯ ВЕЖЛИВАЯ ОТМЕНА · СБРОСЫ ОТКАЗАНО

ситуация «запушено в совместную ветку» — единственная предлагаемая команда revert, потому что альтернативы жгут команды.

18 состояний на панели — три вопроса, 3 × 3 × 2 — и большинство сворачивается в ту же горстку команд.

портал ОТКАЗАНО прикручен поперёк трёх жёлобов сброса — постоянная конструкция, не рычаг: запушенные коммиты не могут войти

02ТАБЛИЦА РЕШЕНИЙ

весь мозг сортировщика, распечатан — машина гоняет этот поиск ячейка за ячейкой, без аккаунта, ничего не загружается

КомандаИсторияРабочее деревоОбщая ветка?
git reset --soft HEAD~1отступает на 1правки сохранены, stagedнет — перепись
git reset HEAD~1отступает на 1правки сохранены, unstagedнет — перепись
git reset --hard HEAD~1отступает на 1правки выброшенынет — разрушительно
git revert HEADдобавляет коммит отменынетронутода — безопасный ход
git reflog + git switch -c recovery <sha>ничего не потеряновосстановлено из reflogспасение после чего угодно

Вопрос совместной ветки — это весь инструмент. Всё остальное — удобство; этот — контроль повреждений.

03КОМАНДЫ, КОТОРЫЕ ОН ПЕЧАТАЕТ

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

закоммичено, не запушено — локальные переписи
# committed, not pushed, keep the changes staged
git reset --soft HEAD~1

# committed, not pushed, keep the changes unstaged
git reset HEAD~1
запушено — единственная вежливая отмена
# pushed, others pull this branch — the only polite undo
git revert --no-edit HEAD~1..HEAD
git push
закоммичено и потеряно — спасение через reflog
# committed and lost — reflog knows for ~90 days
git reflog
git switch -c recovery <sha-from-the-list>

проверка: git reset --soft HEAD~1 → правки сохранены, staged · git reflog + git switch -c recovery <sha> → ничего не потеряно, восстановлено из reflog

диапазон—HEAD~1..HEAD делает revert ровно названных коммитов — стоит знать, даже если инструмент наберёт его за вас
часы—спасению есть что спасать только потому, что git держит брошенные коммиты достижимыми примерно ~90 дней
телефонный тест—одна статическая страница — ни сервера, ни аналитики, ни кук — грузится в серверной, где и случаются git-аварии

04ЧТО МАШИНА ОТКАЗЫВАЕТ

отказы — это фича — где летопись отказывается гадать, сортировщик печатает стену

общая ветка—«запушено в совместную ветку» предлагает одну команду: revert — альтернативы жгут команды
своя ветка—пути сброса различаются только хвостом --force-with-lease — инструмент всё равно подаёт вежливый путь первым
без помощи по rebase—переставлять коммиты? вы уже знаете больше, чем инструмент учит
без хирургии стеша—у этого свой отдельный гид
квитанция—этот сайт ранжируется по «git reset last commit keep changes» на позиции 12.3 — 27 показов за неделю, ноль кликов — запрос, кричащий о команде, не об эссе

источник: github.com/mrsaynothing/git-undo — простой HTML и JavaScript, без этапа сборки, без зависимостей. Форкайте, перекрашивайте, вырывайте мои формулировки.

Если он сэкономит вам одну reflog-сессию в этом году — он окупил вечер, которого стоил.

■ честный штамп Проверено на: наборе команд git 2.4x · только браузер · без аккаунта, ничего не загружается. Первая публикация 2026-09-25. Таблица решений — это летопись revert-против-reset, переплавленная в поиск; каждая команда печатается как проверенная, предупреждения приложены. Инструмент — одна статическая страница простых HTML и JavaScript — единственное, что он куда-либо отправляет, это ничего.

конец генератора · ничего не fetched · всё локально