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
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
Faire le
git branch -r
etgit checkout -b master <remotebranchofinterest>
Vérifiez le fichier
HEAD
dans distant .Git.Vérifier si quelqu'un a déjà posé la question suivante: ici
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.
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.
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
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://
.
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.