Utiliser l'historique de git lui-même
Attention : Vous entrez en zone très dangereuse
Cette partie est destinée à vous apprendre à rattraper quelques erreurs courantes à l'aide d'un outil très pratique : git reflog.
Son usage est dangereux et ne doit pas être systématisé.
Fondamental : Historique des versions de votre dépôt git
L'ensemble des actions effectuées sur un dépôt git est enregistrée dans les logs de référence (reflogs). Chacune des opérations de git ayant eu un impact sur votre dépôt local y est référencée, comme par exemple :
Les merge / rebase
Les déplacements dans l'historique
Les créations de nouvelles versions
Les resets
Toutes les opérations effectuées sont répertoriées dans des commits spécifiques avec leur SHA propres.
Méthode : Afficher l'historique des versions
Pour afficher l'historique des versions, il suffit d'utiliser la commande git reflog
git reflog
Méthode : Se déplacer dans l'historique des versions, annuler des modifications échouées.
Il est possible de se déplacer dans l'historique des versions, et il est possible d'annuler toutes les modifications effectuées par git depuis un point donné
git checkout sha_du_log #vous déplace à ce moment des modifications pour inspecter le code
git reset --hard sha_du_log # annule toutes les modifications effectuées depuis le SHA
Conseil : Quelques cas où effacer les derniers reflogs n'est pas nécessairement une mauvaise idée
Il va de soi qu'il est extrêmement déconseillé de remonter loin dans l'historique de git, cependant, voici certains cas d'utilisations utiles
Un rebase interactif qui a mal tourné
Un merge qui a mal tourné
Un reset --hard sur le mauvais commit (ne profitez pas de cette sécurité pour utiliser reset --hard à tout bout de champ cependant)