2013-10-31 9 views
18

Sto cercando di rendere disponibile un repository git per l'accesso in sola lettura su http.non è in grado di clonare repository git tramite http; info/riferimenti non trovati

Sto facendo il modo vecchio stile perché git-http-backend non è disponibile sul mio sistema host. Cioè, sto semplicemente mettendo il repository nudo in una posizione accessibile http.

Ho creato correttamente il repository nudo sull'host utilizzando git clone --bare <some-remote-location>.

Ora, quando punto git al nuovo clone utilizzando git clone http://my.host.name/location, un messaggio riporta repository not found.

Quando acquisisco il traffico di rete, vedo che git sta tentando di accedere a http://my.host.name/location/info/refs. Ci si aspetta che questo fallisca perché non esiste un percorso info/refs nel repository. Piuttosto ci sono le directory info e refs direttamente sotto la radice del repository.

Evidentemente il repository nudo clonato non è strutturato come previsto dal client. Qualcuno sa perché potrebbe essere così?

risposta

23

È necessario eseguire git update-server-info sul server per generare i file necessari affinché il "protocollo stupido" funzioni.

+1

Inoltre, è necessario farlo in un repository nudo – Luc

10

Provare i passaggi indicati here on git-scm for http/s protocol.

In sostanza, dopo aver fatto il git clone --bare <path-to-repository>, è necessario eseguire mv hooks/post-update.sample hooks/post-update withing il repository nudo e poi fare un git update-server-info una volta e poi si dovrebbe essere in grado di clonare il repo.

1

Ho riscontrato questo problema quando il telecomando è in esecuzione su un repository git 1.7.X e il client git è 1.8.X; L'ho dimostrato effettuando il downgrade del mio client a 1.7.X - questo ha risolto il problema. Quindi assicurati che git sia la stessa versione sui lati "client" e "server". Il comando che stavo facendo era git clone.

+0

ho avuto lo stesso problema, e si è rivelato essere perché il server è stato l'invio charset = utf-8. vedi https://github.com/takezoe/gitbucket/issues/20 – AlexDev

0

Ricordarsi anche di verificare che i moduli richiesti siano abilitati su apache. Questi sono i moduli richiesti per git su HTTP:

  • mod_alias
  • mod_cgi
  • mod_env
0

ho avuto lo stesso errore nel tentativo di clonare un progetto gitlab perché ho impostato una strada sbagliata !
Ho scelto il percorso SSH anziché il percorso HTTP. (+ Non dimenticare il .git)

git clone *HTTP_path.git* 
Problemi correlati