Git Reflog
Dernière mise à jour
git reflog enregistre chaque endroit vers lequel HEAD a pointé - chaque commit, checkout, reset et rebase. Comme Git conserve ces commits pendant un certain temps même après qu'ils ont quitté vos branches, le reflog est votre filet de sécurité : il vous permet de retrouver et de récupérer le travail qu'un reset --hard, un mauvais rebase ou une branche supprimée semblaient avoir détruit.
Essayez ceci dans le terminal playground - un vrai shell dans votre navigateur, rien à installer.
Syntaxe
| Command | What it does |
|---|---|
git reflog | Affiche les positions récentes de HEAD, avec les hachages |
git reflog show <branch> | Affiche le reflog d'une branche |
git reset --hard HEAD@{1} | Ramène HEAD à une position antérieure |
git branch recovered <hash> | Recrée une branche sur un commit perdu |
Récupérer après une erreur
Annulez un reset raté en retrouvant le commit d'avant le reset.
| Step | Command | Result |
|---|---|---|
| 1 | git reflog | Retrouvez le commit d'avant le reset |
| 2 | git reset --hard HEAD@{1} | Restaurez votre branche vers celui-ci |
FAQ git reflog
Qu'est-ce que git reflog ?
HEAD (et l'extrémité de chaque branche) a pointé dans votre dépôt local - après des commits, checkouts, resets, merges et rebases. Contrairement à git log, qui suit l'ascendance des commits, le reflog est un enregistrement chronologique de vos actions, ce qui le rend utile pour la récupération.Comment récupérer un commit après git reset --hard ?
git reflog pour trouver l'entrée du commit sur lequel vous étiez avant le reset (quelque chose comme HEAD@{1}), puis git reset --hard <that-hash> (ou HEAD@{1}) pour y revenir. Le commit n'a pas vraiment été supprimé - il n'avait simplement plus de branche pointant vers lui, et le reflog connaît toujours son hachage.Comment restaurer une branche supprimée ?
git reflog, puis recréez la branche à cet endroit : git branch <name> <hash>. Tant que la suppression est récente (dans le délai d'expiration du reflog de Git, généralement quelques semaines), les commits restent accessibles de cette façon.git reflog fonctionne-t-il entre les clones ?
Puis-je m'entraîner à cela en ligne ?
git reflog dans un vrai shell dans votre navigateur - rien à installer. Le cours Git interactif et gratuit de Coddy couvre aussi l'annulation des modifications et la récupération, étape par étape.