Aller au contenu principal

Se connecter

Sauvegarde ta progression et retrouve-la sur tous tes appareils.

Ou par email

Pas encore de compte ?

Politique de confidentialité

detached HEAD state — Comprendre cet etat Git

Ce n'est pas vraiment une erreur mais un avertissement qui deroute beaucoup de debutants. HEAD pointe vers un commit au lieu d'une branche. Voici ce que cela signifie et comment le gerer.

Avertissement

Ce que cet avertissement signifie

Dans Git, HEAD est un pointeur qui indique a Git sur quel commit vous travaillez actuellement. Normalement, HEAD pointe vers une branche (comme main), et la branche pointe vers un commit.

Lorsque vous etes en etat de HEAD detache, HEAD pointe directement vers un commit au lieu d'une branche. Vous pouvez toujours parcourir les fichiers, faire des modifications et creer des commits — mais ces commits n'appartiennent a aucune branche.

Le danger est que si vous changez de branche sans sauvegarder votre travail, ces commits orphelins peuvent finir par etre supprimes par le ramasse-miettes et etre perdus. La solution est simple : creez une branche avant de changer.

Pourquoi cela se produit

Checkout d'un commit specifique

Lancer git checkout a1b2c3d deplace HEAD directement vers ce commit. Puisque vous n'etes pas sur une branche, Git entre en etat de HEAD detache. C'est le declencheur le plus courant.

Checkout d'un tag

Les tags pointent vers un commit specifique, pas vers une branche. Lancer git checkout v1.0.0 vous met en HEAD detache tout comme le checkout d'un hash de commit. Pour travailler a partir d'un tag, creez immediatement une branche.

Pendant un rebase interactif

Lorsque vous lancez git rebase -i, Git rejoue vos commits un par un en etat de HEAD detache. C'est normal et temporaire — HEAD se rattache a votre branche une fois le rebase termine.

Comment corriger

Deux options : sauvegarder votre travail sur une nouvelle branche, ou revenir a une branche existante.

1. Sauvegarder sur une nouvelle branche

2. Revenir a une branche

3. Travailler depuis un tag

Comment prevenir cette situation

Utiliser git switch au lieu de git checkout

git switch est concu pour la navigation entre branches et refuse de detacher HEAD sauf si vous utilisez explicitement --detach. Cela previent les situations accidentelles de HEAD detache.

Creer une branche lors de l'inspection d'anciens commits

Au lieu de git checkout a1b2c3d, utilisez git switch -c inspecter-commit a1b2c3d. Cela vous donne une branche immediatement, donc tout commit que vous faites est en securite.

Savoir quand le HEAD detache est normal

Pendant git rebase -i ou git bisect, le HEAD detache est attendu. Pas de panique — laissez simplement l'operation se terminer ou annulez-la proprement si quelque chose ne va pas.

A

GitQuest est conçu par Anaïs (nouvelle fenêtre), développeuse web et responsable pédagogique, spécialisée en formations tech et accessibilité numérique.

Questions sur le detached HEAD state

Maitrisez les branches Git avec GitQuest

Pratiquez le branching, le merge et la navigation entre commits grace a des investigations interactives.

Commencer a apprendre Git