web-dev-qa-db-fra.com

git Avertissement: remote HEAD fait référence à une référence inexistante, impossible de commander

J'essaie de configurer la gitose selon les instructions ici .

Cela fonctionne très bien à partir de ma machine distante, donc le serveur semble bien configuré, mais j'aimerais également pouvoir faire le développement sur ma machine de serveur gitosis à partir d'un compte utilisateur différent (pas l'utilisateur git créé dans la configuration de gitosis).

J'ai copié la clé et modifié le gitosis.conf pour que l'autre compte d'utilisateur ait accès mais quand j'essaye de cloner ça semble fonctionner sauf qu'à la fin ça dit:

git Warning: remote HEAD refers to nonexistent ref, unable to checkout

et je me retrouve avec un répertoire vide sauf pour .git

J'ai un peu recherché Google pour cela, mais je n'ai aucune idée précise du problème

39
srboisvert

J'ai découvert ce qui n'allait pas. Le problème était que je ne faisais pas attention aux avertissements lorsque je poussais vers mon serveur de gitose, donc je ne savais pas que je ne poussais pas une branche particulière. J'avais supposé qu'il ne ferait que pousser le courant, mais ce n'est pas le cas jusqu'à ce que vous définissiez:

git config Push.default current
25
srboisvert
  1. Faites le git branch -r et git checkout -b master <remotebranchofinterest>

  2. Vérifiez le fichier HEAD dans .git distant.

  3. Vérifiez si quelqu'un a déjà posé la question: ici

21

Une autre cause possible de cet avertissement pourrait être que la branche master dans le référentiel est manquante (OU) le référentiel n'utilise PAS de branche principale. Si tel est le cas, ne vous inquiétez pas de l'avertissement !, utilisez

git checkout <some_existing_branch>

L'avertissement est dû au fait que, par défaut, après que le pull git ait tenté de passer à la branche principale.

18
Boopathi Rajaa

Eu un problème similaire. Il semble que lors de mon premier Push j'ai fait git Push Origin master:/refs/heads/master au lieu de git Push Origin master:refs/heads/master (remarquez la barre oblique supplémentaire). Cela a provoqué le placement de mon maître (dans le référentiel distant) à refs/heads/refs/heads/master au lieu de refs/heads/master. Le correctif consistait à réorganiser les dossiers sur la télécommande et à repousser.

2
Cristian Vrabie

Rester simple. Ajoutez à l'autorisation gitosis et à la clé SSH pour le compte d'utilisateur sur votre serveur et clonez comme d'habitude:

user@server$ git clone git@server:repo.git
1
Greg Bacon

Si vous essayez de cloner sur http:// notez que vous avez besoin d'un git plus récent que 1.6.6 - sinon vous devez utiliser un git:// URI basé.

0
EvdB

J'utilise tortoiseGit et je ne sais pas comment utiliser git via la ligne de commande. Je me demande donc toujours comment éviter un tel problème avec ma tortue. Alors peut-être que je ne suis pas seul. J'ai résolu le problème de cette façon:

  • cloner le référentiel distant
  • faites un clic droit sur le dossier racine et choisissez une branche existante

Im mon cas, il n'y avait qu'une branche "dev", sans master. Donc, quand j'ai essayé de cloner, il n'y avait pas de succursale locale à vérifier et dès que je suis passé à "dev", il a pu vérifier tout le contenu avec succès. J'espère que cela vous sera utile.

0
Dmitry O