PassFront
  1. PassFront
  2. База знаний
  3. История и отмена изменений

Зачем нужна команда 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

Другие вопросы раздела