que - git remote add origin<server>
no puede clonar repositorios de git a través de http; info/refs no encontrados (5)
Estoy tratando de hacer que un repositorio git esté disponible para acceso de solo lectura a través de http.
Lo estoy haciendo a la antigua usanza porque git-http-backend
no está disponible en mi sistema host. Es decir, simplemente estoy colocando el repositorio en una ubicación http accesible.
git clone --bare <some-remote-location>
éxito en el host usando git clone --bare <some-remote-location>
.
Ahora, cuando apunto git al nuevo clon utilizando git clone http://my.host.name/location
, un mensaje informa que repository not found
un repository not found
.
Cuando capturo tráfico de red, veo que git está intentando acceder a http://my.host.name/location/info/refs
. Se esperaría que esto fallara porque no hay info/refs
ruta en el repositorio. Más bien, hay directorios de info
y refs
directamente debajo de la raíz del repositorio.
Evidentemente, el repositorio simple clonado no está estructurado como lo espera el cliente. ¿Alguien sabe por qué esto podría ser?
¡Tuve el mismo error al intentar clonar un proyecto de gitlab porque establecí una ruta incorrecta!
Tomé la ruta SSH
lugar de la ruta HTTP
. (+ no olvides el .git
)
git clone *HTTP_path.git*
Deberá ejecutar git update-server-info
en el servidor para generar los archivos necesarios para que funcione el "protocolo simple".
He tenido este problema cuando el control remoto se ejecuta en un repositorio git 1.7.X y el cliente git es 1.8.X; Lo probé bajando la calificación de mi cliente a 1.7.X - esto solucionó el problema. Así que asegúrese de que git sea la misma versión en los lados "cliente" y "servidor". El comando que estaba ejecutando era git clone.
Pruebe los pasos mencionados aquí en git-scm para el protocolo http / s .
Básicamente, después de hacer el git clone --bare <path-to-repository>
, debe ejecutar mv hooks/post-update.sample hooks/post-update
dentro de su repositorio y luego hacer una git update-server-info
una vez. y entonces deberías poder clonar el repositorio.
Recuerde también verificar que los módulos necesarios estén habilitados en apache. Estos son los módulos requeridos para git sobre HTTP:
- mod_alias
- mod_cgi
- mod_env