Зачем нужна команда git reflog?
История и отмена изменений
`git reflog` показывает журнал перемещений HEAD и веток в локальном репозитории — даже тех, которых уже не видно в git log.
Зачем нужен
Это страховка от потери работы:
- после неудачного
git reset --hard; - после rebase, который «съел» коммиты;
- после удаления ветки.
Пример восстановления
git reflog
# a1b2c3d HEAD@{0}: reset: moving to HEAD~3
# 9f8e7d6 HEAD@{1}: commit: добавил валидацию
git reset --hard 9f8e7d6 # вернуть ветку на потерянный коммит
# или
git branch restore 9f8e7d6 # сохранить в новую веткуОграничения
- Reflog локальный: на сервер он не попадает и у коллег его нет.
- Старые записи со временем удаляются (по умолчанию через 90 дней, а записи о недостижимых коммитах — через 30).
Коротко для собеседования
git reflog — локальная история перемещений HEAD, через которую можно вернуть коммиты после reset, rebase или удаления ветки.
Подробнее: Pro Git — reflog