Mémo Git · Branches

Se placer sur un ancien commit

git switch --detach <commit>

Pour voir ou tester le projet tel qu'il était à un commit précis, lance git switch --detach <commit>. Tu n'es alors plus sur aucune branche : c'est l'état « HEAD détaché ». Rien n'est perdu, et git switch <branche> te ramène où tu étais.

Ce que ça fait

Met la copie de travail dans l'état d'un commit précis, sans branche (« HEAD détaché »).

Un cas d'usage

Tu veux relancer l'application telle qu'elle était la semaine dernière pour reproduire un bug.

Attention : Des commits créés en HEAD détaché sont perdus de vue dès que tu changes de branche : crée une branche pour les garder.

En ligne de commande

git switch --detach <commit>
Se place sur un commit, un tag ou une branche distante.
git checkout <commit>
Ancienne syntaxe, équivalente.
git switch -
Revient à la branche précédente.
git switch -c <branche>
Garde le travail fait en HEAD détaché dans une nouvelle branche.

Dans Merathon

  1. Clic droit sur le commit dans le graphe → « Checkout ce commit (HEAD détaché) ».
  2. Pour revenir, double-clique sur une branche de « Local ».

Questions fréquentes

Que veut dire « You are in 'detached HEAD' state » ?

HEAD pointe directement sur un commit et non sur une branche. Tu peux regarder, compiler, tester. Si tu commites, crée une branche avant de repartir, sinon ces commits ne seront plus visibles.

J'ai commité en HEAD détaché puis changé de branche : comment les récupérer ?

git reflog donne le hash du dernier commit ; git branch <branche> <hash> le rattache à une branche.

Voir aussi