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