Utiliser l'historique de git lui-même

AttentionVous 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é.

FondamentalHistorique 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éthodeAfficher l'historique des versions

Pour afficher l'historique des versions, il suffit d'utiliser la commande git reflog

1
git reflog

MéthodeSe 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é

1
git checkout sha_du_log #vous déplace à ce moment des modifications pour inspecter le code
2
git reset --hard sha_du_log # annule toutes les modifications effectuées depuis le SHA

ConseilQuelques 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)