Accueil / Blog / Métier / 2016 / Git : réconcilier HEAD détaché sur un commit avec une branche

Git : réconcilier HEAD détaché sur un commit avec une branche

Par Emmanuelle Helly publié 29/01/2016
Petite astuce #git bien utile, si vous avez perdu le fil.
Git : réconcilier HEAD détaché sur un commit avec une branche

Lorsque votre commande git status vous indique, après un rebase -i interrompu, ou un git co <commit> :

HEAD détachée sur 0e3e5ef
...

Vous êtes perdu. En fait il manque la branche entre HEAD et le commit sur lequel il est positionné.

En temps normal HEAD est positionné sur une branche qui constitue une référence, et qui est positionnée sur un commit. Lorsqu'un nouveau commit est créé, la branche se positionne sur ce nouveau commit, et HEAD suit la branche.

Le plus simple est de créer une branche temporaire, puis rétablir la base de votre branche en cours dessus. Mettons que vous êtes sur la branche dev :

git checkout -b temp

Un git status donne :

* 0e3e5ef - (HEAD, temp) Commit détaché
* c084b24 - (origin/dev, dev) Dernier commit
* 3f4b825 - Autre modification

Si cela vous convient, vous pouvez positionner dev

git branch -f dev temp
git checkout dev

Il vous reste à supprimer la branche temporaire

git branch -d temp

Source: Stackoverflow

Crédit photo: Lost (by Spawk), CC-By, in Flickr

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Gérer des projets avec Gitlab Gérer des projets avec Gitlab 14/02/2019

Quelques astuces pour gérer les projets avec Gitlab, logiciel libre de gestion de version

Nettoyer un dépôt Git Nettoyer un dépôt Git 17/03/2016

"Et je ne ferai pas ça tous les jours !"

Git : annuler proprement un commit après un push Git : annuler proprement un commit après un push 03/11/2011

Les nouveautés de Git 2.9 Les nouveautés de Git 2.9 16/06/2016

Il y a trois jours paraissait la version 2.9.0 de Git. Survol rapide des nouveautés.

Avec Git rebase, vos arbres poussent droit Avec Git rebase, vos arbres poussent droit 16/09/2011