avertissement git: la tête distante fait référence à une référence inexistante, impossible de commander

J'essaie de configurer gitosis selon les instructions ici .

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

J'ai copié la clé et modifié le gitosis.conf de sorte que l'autre compte d'utilisateur a accès, mais lorsque j'essaie de cloner il semble fonctionner, sauf à la fin il 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 google pour cela mais je n'ai pas de véritable aperçu du problème

39
demandé sur srboisvert 2009-12-25 17:51:10

7 réponses

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

git config push.default current
25
répondu srboisvert 2009-12-25 23:29:03
  1. Faire le git branch -r et git checkout -b master <remotebranchofinterest>

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

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

21
répondu Michael Krelin - hacker 2017-05-23 12:34:00

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 maître. Si c'est le cas, ne vous inquiétez pas de l'avertissement!, utiliser

git checkout <some_existing_branch>

L'avertissement est parce que, par défaut, après le pull git essaie de récupérer dans la branche master.

18
répondu Boopathi Rajaa 2013-04-19 12:13:46

Avait un problème similaire. Il semble que lors de ma première poussée, j'ai fait git push origin master:/refs/heads/master au lieu de git push origin master:refs/heads/master (notez la barre oblique supplémentaire). Cela a amené mon maître à être placé (dans le référentiel distant) à refs/heads/refs/heads/master au lieu de refs/heads/master. Le correctif consistait à réorganiser les dossiers à distance et à les re-pousser.

2
répondu Cristian Vrabie 2011-07-01 07:21:16

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

user@server$ git clone git@server:repo.git
1
répondu Greg Bacon 2009-12-25 15:14:34

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

0
répondu EvdB 2012-03-27 11:16:35

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

  • cloner le repo distant
  • Faites un clic droit sur le dossier racine et à partir de là, choisissez une branche existante

Im mon cas, il n'y avait qu'une branche "dev", sans maître. Donc, quand j'ai essayé de cloner, il n'y avait pas de branche locale à vérifier et dès que je suis passé à " dev" il a pu vérifier tout le contenu avec succès. Espérons qui vous sera utile.

0
répondu Dmitry O 2013-09-18 19:44:35