avertissement: le refname 'HEAD' est ambigu

139

Je suis nouveau sur Git et il me semble avoir une branche de trop si j'exécute la commande suivante:

warning: refname 'HEAD' is ambiguous.

J'obtiens la sortie suivante:

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

Si j'exécute git branch -a

J'obtiens ce qui suit:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

Je suis confus par le remotes/origin/HEAD -> origin/master.

Qu'est-ce que c'est et comment puis-je me débarrasser de la branche ambiguë.

Je suis arrivé à ce stade en effectuant une fusion où je pense avoir ajouté la branche ambiguë.

dagda1
la source
11
Quelle est la première commande que vous essayez d'exécuter? Ce n'est sûrement pas le caswarning: refname 'HEAD' is ambiguous.
Ben James
1
remotes/origin/HEAD -> origin/masterce n'est pas un problème: il montre simplement quelle branche est par défaut dans remote origin. La branche nommée HEADest.
Jakub Narębski
3
Je pense que vous devez modifier la question pour montrer la commande que vous essayez d'exécuter :)
Kris
Pour reproduire cela, exécutez "git fetch origin HEAD: HEAD". Apparemment, il essaie de fusionner la branche actuelle dans une nouvelle branche appelée, littéralement, HEAD.
Brain2000 le

Réponses:

224

Le problème est que vous avez une branche appelée, HEADce qui est absolument dangereux, car c'est le nom symbolique de la branche actuelle .

Renommez-le:

git branch -m HEAD newbranch

alors vous pouvez l'examiner et décider quoi faire (supprimez-le ou enregistrez-le sous un nom de branche descriptif)

(La origin/HEADbranche distante n'est pas un problème)

u0b34a0f6ae
la source
Cela peut également se produire si vous avez un fichier ou un répertoire portant le même nom qu'une branche.
Matt Connolly le
2
Bien que origin/HEADce ne soit pas un problème, si vous créez accidentellement une branche appelée origin/somebranchIS un problème (et entraînera le même message d'erreur "ambigu"). Lorsque vous essayez de tirer de "somebranch", vous finirez par tirer de votre branche locale (accidentelle) plutôt que de la télécommande. Dans ce cas, j'ai trouvé que la suggestion de Flickerfly de faire git branch -d origin/somebranchfonctionne très bien.
machineghost
Cela a réglé le problème, merci. A noter que la branche "HEAD" est créée automatiquement, pas par moi. Il contenait un seul commit de fusion et je n'ai pas réussi à revenir à un état propre à l'aide de reflog. Donc, j'ai renommé la branche, je l'ai supprimée, rebasé mon maître local "1 en avant" à l'origine / maître, poussé sans problème
Yunus Nedim Mehel
1
La même chose peut arriver pour les balises, pas seulement pour les branches.
sebix
1
hah! je travaille avec des robots qui ont une tête et ont créé une branche nommée head(minuscule).
orion elenzil
36

En outre, cela supprimera la branche, si vous ne le souhaitez tout simplement pas.

git branch -d HEAD

Utilisez une majuscule -Dpour forcer la suppression:

git branch -D HEAD
Josiah
la source
3
mais il restera encore ambigu, y a-t-il moyen de le purger?
RzR
27

Si vous avez créé une balise nommée à l' HEADaide de ...

git tag HEAD

... vous pouvez simplement supprimer cette balise en utilisant:

git tag -d HEAD

Voir ce cas: kerneltrap.org/git-tag HEAD

Bengt
la source
Cela se produit lorsque vous ajoutez une balise avec le nom HEAD par erreur, vous devez donc la supprimer comme suggéré ici
user1610308
1

Cela signifie que vous avez une branche nommée "tête". J'ai eu le même problème, j'ai résolu en exécutant la commande suivante.

git branch -d head
stacksonstacksonstacks
la source
1

Vérifiez les références disponibles dans votre référentiel git. Vous observerez deux HEAD dans votre référentiel. Cela rend votre branche avec refname HEAD ambiguë.

git show-ref

Solution:

  • Renommer la branche

    git branch -m HEAD <new_branch_name>
    

    OU

  • Supprimer la branche

    git branch -d HEAD
    
Darshan
la source