Git protip : dernière branche active avec “-”
Par Maxime Bréhin • Publié le 12 septembre 2022 • 1 min

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 (reset ou commit --amend)…), 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 au reflog 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.

Animation switches multiples

Le truc sympa c’est qu’on est pas cantonné à la commande switch. On peut aussi utiliser cette notation pour d’autres choses comme rebase ou merge :

  • git merge - : fusionne la branche précédente dans la branche courante ;
  • git rebase - : rebase la branche courante sur la branche précédente.
  • git cherry-pick - : réplique dans la branche courante le dernier commit (par exemple un bugfix) de la branche précédente.
Tu veux aller plus loin et maîtriser pleinement les fondamentaux de Git ou être accompagné pour garantir la qualité de tes projets grâce à une bonne mise en place de Git ? On peut t’aider ou te former, il suffit de nous décrire ton besoin !