115 votes

warning : remote HEAD se réfère à une référence inexistante, impossible d'effectuer le checkout

Cette erreur semble très répandue pour différentes raisons.

J'ai un simple repo git nu appelé "kiflea.git", je le clone comme ceci :

git clone git://kipdola.be/kiflea.git

Puis git me dit : warning: remote HEAD refers to nonexistent ref, unable to checkout.

Et oui, il n'y a pas de fichiers versionnés dans la carte, à l'exception du répertoire .git. Bref, la seule chose que j'ai besoin de faire est :

cd kiflea
git checkout master

Et ça marche, tous les fichiers sont là. Mais je pensais que le clonage d'un repo vérifiait automatiquement le master, alors que se passe-t-il exactement, et comment puis-je le réparer ?

J'ai remarqué que, après avoir fait le git checkout master ce qui est ajouté à mon fichier de configuration .git local :

[branch "master"]
    remote = origin
    merge = refs/heads/master

Il est probablement intéressant de savoir que ce dépôt git était un dépôt svn dans un passé lointain.

Ps : lorsque l'on parcourt le dépôt nu à l'aide de gitweb, il y a clairement une master succursale là-bas : http://kipdola.be/gitweb/?p=kiflea.git;a=sommaire

2 votes

Qu'est-ce que git ls-remote origin vous montrer ?

0 votes

C'est la même chose avant ou après le checkout master bit : 25f600739343a7ce32d6311a1e6140870774810b refs/heads/master

1 votes

Il semble que le référentiel distant ait perdu (ou n'ait jamais eu) son HEAD . Avez-vous un accès direct à celui-ci ? Si oui, voir aquí

1voto

László Tóth Points 86

Dans mon cas, le repo était vide.

git checkout --orphan master

git add some_file
git commit -m 'init'
git push origin master

0voto

Samantha Points 581

S'il n'y a pas de branche master disponible, vérifiez ce qui suit ; S'il y a un fichier nommé 'packed-refs' dans le dossier '.git', ouvrez-le et vous pourrez y trouver toutes les références listées.

Quelque chose comme ce qui suit ;

# pack-refs with: peeled fully-peeled 
e7cc58650190bd28599d81917f1706445d3c6d8b refs/tags/afw-test-harness-1.5
^cfae4f034e82591afdf4e5ed72279297d0eee618
6afe1bcfa4bd74de8e0c8f64d024e1cc289206df refs/tags/afw-test-harness-2.1
^c32f7fa495d4b44652f46c065fcd19c3acd237a6
72f2e4284dfbf27c82967da096c6664646bbdd19 refs/tags/android-1.6_r1
^50992e805e758e2231f28ec2127b57a1a9fd0ddc
0cbd528cad1cee9556098b62add993fc3b5dcc33 refs/tags/android-1.6_r1.1

Ensuite, utilisez ;

git checkout refs/tags/xxxx

Ou

git checkout 'HASH value'

pour vérifier la version requise. Nous vous remercions de votre attention.

0voto

Jinhua Wang Points 101

Il me semble que j'ai réussi à régler le problème avec :

git checkout -b  master
git push

Cela a créé le master par défaut, et j'ai ensuite pu faire un checkout de mes autres branches

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X