</>
Plan du cours — 61/74

Reflog : récupérer un commit "perdu"

Avancé

Le reflog enregistre tous les déplacements de HEAD (commits, resets, checkouts, rebases...), même ceux qui ne sont plus visibles dans git log. C'est le filet de sécurité de Git.

# Voir l'historique des déplacements de HEAD
git reflog
# abc1234 HEAD@{0}: commit: Ajoute la validation
# def5678 HEAD@{1}: reset: moving to HEAD~1
# ghi9012 HEAD@{2}: commit: wip

Cas pratique : vous avez fait git reset --hard HEAD~1 par erreur et perdu un commit qui n'était pas poussé.

git reflog
# repérez la ligne juste avant le reset, ex: ghi9012 HEAD@{2}: commit: wip

git reset --hard ghi9012
# ou, plus prudent, créer une branche à partir de ce commit pour ne rien écraser :
git branch recuperation ghi9012

Le reflog garde généralement 90 jours d'historique local (gc.reflogExpire) — largement de quoi rattraper une erreur récente.