Git хранит историю всех перемещений HEAD в reflog. Даже если коммит удалён, то может он ещё живёт в репозитории.
Запускаем:
git reflog
Увидите список всех состояний HEAD с хэшами. Находим запись до того, как всё сломалось:
abc1234 HEAD@{3}: commit: my important workВосстанавливаем коммит
Вариант 1. Вернуть ветку на нужный коммит:
git reset --hard abc1234
Вариант 2. Cоздать новую ветку из того коммита:
git checkout -b recovery-branch abc1234
Если были незакоммиченные изменения
Reflog тут не поможет —
git reset --hard уничтожает их без следа. Но есть варианты:• Проверьте
.git/ORIG_HEAD. Иногда Git сохраняет предыдущее состояние туда• Попробуйте
git fsck --lost-found —- ищет «висячие» объекты в репозитории• Если работаете в VS Code или IntelliJ, то проверьте Local History, часто спасает
Git почти никогда не удаляет данные сразу. У вас есть ~30 дней, пока сборщик мусора не почистит потерянные объекты.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt