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