Le reflog : votre filet de sécurité
Git enregistre chaque mouvement de HEAD dans le reflog — resets, checkouts, rebases, amends, merges.
Inspecter le reflog
git reflog
git reflog show feature/login
git log -g
Récupérer une branche supprimée
git reflog | grep checkout
git checkout -b recovered <sha>
Annuler un mauvais reset
git reset --hard HEAD~5
git reflog
git reset --hard HEAD@{1}
Annuler un mauvais rebase
git reflog
git reset --hard ORIG_HEAD
Récupérer un commit amendé
git commit --amend
git reflog
git reset --hard HEAD@{1}
Trouver des commits orphelins
git fsck --lost-found
git fsck --no-reflog | grep "dangling commit"
Reflog vs stash
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
git stash apply <sha>
Configurer l'expiration du reflog
git config gc.reflogExpire 180.days
git config gc.reflogExpireUnreachable 90.days