web-dev-qa-db-fra.com

ne peut pas cloner les repos git via http; info/ref non trouvé

J'essaie de rendre un référentiel git disponible pour un accès en lecture seule via http. 

Je le fais à l'ancienne, car git-http-backend n'est pas disponible sur mon système hôte. Autrement dit, je mets simplement le référentiel nu dans un emplacement accessible par http.

J'ai créé le référentiel nu avec succès sur l'hôte à l'aide de git clone --bare <some-remote-location>

Maintenant, quand je pointe git sur le nouveau clone en utilisant git clone http://my.Host.name/location, un message signale repository not found

Lorsque je capture le trafic réseau, je constate que git tente d'accéder à http://my.Host.name/location/info/refs. Cela devrait échouer car il n'y a pas de chemin d'accès info/refs dans le référentiel. Il existe plutôt des répertoires info et refs directement sous la racine du référentiel. 

Il est évident que le référentiel nu cloné n’est pas structuré comme prévu par le client. Est-ce que quelqu'un sait pourquoi cela pourrait être?

19
epl

Vous devrez exécuter git update-server-info sur le serveur pour générer les fichiers nécessaires au fonctionnement du «protocole stupide».

24
poke

Essayez les étapes mentionnées ici sur git-scm pour le protocole http/s .

En gros, après avoir effectué le git clone --bare <path-to-repository>, vous devez exécuter mv hooks/post-update.sample hooks/post-update avec votre référentiel nu, puis effectuer un git update-server-info une fois et pouvoir ensuite cloner le référentiel.

10
mu 無

J'ai eu ce problème lorsque la télécommande est en cours d'exécution sur un référentiel git 1.7.X et que le client git est 1.8.X; Je l'ai prouvé en rétrogradant mon client à 1.7.X - le problème a été résolu. Donc, assurez-vous que git est la même version des côtés "client" et "serveur". La commande que je courais était git clone. 

1
idej1234

Pensez également à vérifier que les modules requis sont activés sur Apache. Voici les modules requis pour git sur HTTP:

  • mod_alias
  • mod_cgi
  • mod_env
0
Marcs

J'ai eu la même erreur en essayant de cloner un projet gitlab parce que je me suis trompé de chemin!
J'ai pris le chemin SSH au lieu du chemin HTTP. (+ n'oubliez pas le .git)

git clone *HTTP_path.git*
0
qfazille