Компьютеры · Инструкция
Как восстановить потерянный commit через git reflog
Reflog хранит локальную историю перемещений ссылок и часто позволяет найти коммит, который больше не виден из обычных ве
Короткий ответ
Если commit исчез после reset/rebase/переключения ветки, найдите его SHA в `git reflog`, проверьте через `git show <sha>` и сразу создайте ветку `git branch recovery <sha>`. Это безопаснее, чем сразу двигать текущую ветку.
Что делать
- Откройте reflog: Выполните `git reflog --date=local` и найдите состояние до ошибочного reset/rebase.
- Проверьте объект: Запустите `git show --stat <sha>` и убедитесь, что это нужный коммит.
- Закрепите его: Создайте `git branch recovery <sha>` или тег, чтобы объект снова стал достижимым.
- Сравните изменения: Используйте `git diff <текущая-ветка>.recovery`.
- Верните изменения: Merge/cherry-pick recovery-ветку либо переключите ветку на неё только после проверки.
Важно
Не запускайте агрессивный `git gc --prune` до восстановления.
Что учитывать
Не запускайте агрессивный `git gc --prune` до восстановления.
Источники и проверка
Инструкция составлена редакцией N1RO на 2026-09-17. Перед действием сверьте актуальные условия на официальном сайте сервиса или производителя.