advanced

Reflog

Восстанавливайте недавно сдвинутые refs после reset, rebase, удаления ветки или других локальных операций с историей.

Reflog записывает **локальные** перемещения refs (HEAD, кончики веток). Журнал восстановления после reset, rebase, checkout или удаления ветки — коммиты могут существовать, даже если ни одна ветка на них не указывает.

					git reflog
git reflog show feature/login
git switch -c recover HEAD@{3}
				

Записи исчезают после garbage collection (по умолчанию ~90 дней для недостижимых коммитов). Reflog нет на remote — восстановление на сервере требует других бэкапов.

На интервью: reflog только локально, ограничен по времени, recovery-ветка из `HEAD@{n}`.

Типовые ошибки: агрессивная очистка до recovery; reflog вместо remote-бэкапов; путаница reflog и `git log`.

Компромисс — мощное локальное восстановление против отсутствия гарантий после GC или на другой машине.

Чеклист:

  • Reflog сразу после случайного reset/rebase.
  • Именованная recovery-ветка до новых destructive ops.
  • Push recovery-ветки, если работа должна пережить локально.
  • Не полагайтесь на reflog для общих катастроф.