GIT - 19 Les marqueurs Spéciaux

En plus des branches, des tags et des autres étiquettes attachées aux commits, Git dispose de marqueurs spéciaux (ou pointeurs) qui jouent un rôle particulier dans l'organisation de l'historique. Le plus important et le plus utilisé de tous est HEAD.

HEAD : le pointeur sur le commit courant

HEAD désigne normalement le dernier commit de la branche actuelle. C'est lui qui matérialise « où vous êtes » dans l'historique. Conséquence directe : lorsque vous changez de branche avec git checkout, l'emplacement de HEAD se déplace automatiquement pour correspondre au dernier commit de la branche que vous venez de rejoindre.

Déplacer HEAD manuellement (avancé)

Bien que cette description couvre la majorité des cas, il est aussi possible de déplacer manuellement HEAD à un autre endroit que le dernier commit de la branche courante — par exemple sur un commit antérieur, pour inspecter ou réinitialiser l'état du repository. C'est ce qu'on appelle un detached HEAD.

  • HEAD = pointeur vers le commit courant
  • Se déplace automatiquement sur git checkout <branche>
  • Peut être déplacé manuellement (detached HEAD)
  • Utilisé par git reset, git diff HEAD, git checkout HEAD~1, etc.

Nous reverrons les manipulations avancées de HEAD dans une section ultérieure du cours (reset, reflog, voyage dans le temps). Pour l'instant, retenez simplement la définition de base : HEAD pointe sur le dernier commit de la branche actuelle.

En résumé

Les marqueurs spéciaux sont des pointeurs Git distincts des branches et balises. Le pointeur HEAD, le plus fondamental, désigne par défaut le dernier commit de la branche actuelle et se repositionne automatiquement lors d'un changement de branche. Il est également possible de déplacer manuellement HEAD vers d'autres commits, une technique avancée abordée ultérieurement dans le cours.

Points clés

  • Git dispose de marqueurs ou pointeurs spéciaux en addition aux branches, balises et étiquettes
  • HEAD est le marqueur le plus important et pointe vers le dernier commit de la branche actuelle
  • HEAD se repositionne automatiquement lors d'un changement de branche
  • Il est possible de déplacer manuellement HEAD vers d'autres commits (technique avancée)
  • La maîtrise de HEAD est fondamentale pour naviguer efficacement dans l'historique Git

Questions fréquentes

Qu'est-ce que HEAD dans Git?

HEAD est un pointeur spécial qui désigne le dernier commit de la branche actuelle. Il se repositionne automatiquement quand vous changez de branche pour pointer vers le dernier commit de la nouvelle branche.

Est-il possible de déplacer HEAD manuellement?

Oui, il est possible de déplacer manuellement HEAD vers d'autres commits, une technique appelée 'detached HEAD' qui est couverte dans les sections avancées du cours.

Quelle est la différence entre HEAD et les branches?

Les branches sont des étiquettes permanentes pour des commits, tandis que HEAD est un pointeur dynamique qui indique votre position actuelle dans l'historique et change automatiquement lors de la navigation entre branches.