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 для общих катастроф.