new - ¿Por qué git-daemon no sirve a mi repositorio?
git tag (2)
O bien, debe colocar un archivo vacío llamado git-daemon-export-ok
en el repositorio o iniciar git daemon
con la opción --export-all
.
Cita de la página del manual de git-daemon:
Verifica que el directorio tenga el archivo mágico "git-daemon-export-ok", y rechazará exportar cualquier directorio de git que no haya sido marcado explícitamente para exportar de esta manera (a menos que se especifique el parámetro --export-all ). Si pasa algunas rutas de directorio como argumentos del demonio git, puede restringir aún más las ofertas a una lista blanca que incluya esas.
Configuré .git
en un directorio en mi máquina local. Entonces corro
mkdir a cd a git init git daemon
Cuando intento clonar el repositorio en a
, obtengo el siguiente error:
mkdir b cd b git clone git://127.0.0.1 Initialized empty Git repository in /b/127.0.0.1/.git/ fatal: The remote end hung up unexpectedly
¿Cómo puedo clonar mi repositorio sobre el protocolo git?
git-daemon
informar a git-daemon
que puede exportar su repositorio:
$ git init --bare /tmp/my-repo.git Initialized empty Git repository in /tmp/my-repo.git/ $ git daemon --verbose --base-path=/tmp --export-all /tmp/my-repo.git & $ git clone git://`hostname`/my-repo.git Initialized empty Git repository in /tmp/my-repo/.git/ warning: You appear to have cloned an empty repository.
Una forma mucho mejor es ejecutarlo desde xinetd
. Crea y ajusta /etc/xinetd.d/git
largo de las líneas de
# description: The git server offers access to git repositories
service git
{
disable = no
type = UNLISTED
port = 9418
socket_type = stream
wait = no
user = nobody
server = /usr/local/bin/git
server_args = daemon --inetd --export-all --base-path=/pub/scm
log_on_failure += USERID
}
No te olvides de sudo killall -HUP xinetd
. Ahora, todos los repositorios de git debajo de /pub/scm
estarán disponibles para cualquiera que pregunte.