Lorsqu’on déplace HEAD ou des têtes de branches (donc lorsqu’on crée des commits, change de branche, fusionne des branches, rebase une branche, annule des commits…), Git enregistre la position précédente de HEAD et de la tête de branche active éventuelle. Ces positions sont enregistrées dans les reflogs.
J’aime à dire que le reflog est notre parcours réel, alors que le log est le tracé GPS « idéal ». Tu peux aussi voir ça comme le Petit Poucet qui marque son chemin avec des cailloux 🪨🪨🪨.
Grâce aux reflogs et à des notations particulières (ce qu’on appelle les syntaxes de révisions), on peut accéder à la position de la branche précédente en appelant “@{-1}” ou sa version raccourcie “-”.
Si je suis sur une branche “main” et que je souhaite retourner sur la branche “dev” sur laquelle j’étais juste avant, je peux faire un “git switch -”. Si je relance cette commande, je retournerai sur la branche “main”.
Cette notation trouve son équivalence dans les terminaux shell avec la commande “cd -” qui permet de revenir au répertoire précédent.
Envie de commenter ? Fais-le directement sur YouTube !