Este es el comando git-daemon que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
git-daemon: un servidor realmente simple para repositorios de Git
SINOPSIS
git demonio [--verbose] [--syslog] [--exportar-todo]
[--timeout = ] [--init-timeout = ] [--max-connections = ]
[--strict -path] [--base-path = ] [--base-path-relajado]
[--ruta-de-usuario | --user-path = ]
[--interpolated-path = ]
[--reuseaddr] [--detach] [--pid-file = ]
[--enable = ] [--disable = ]
[--allow-override = ] [--forbid-override = ]
[--access-hook = ] [- [no-] errores-informativos]
[--inetd |
[--escucha = ] [--port = ]
[--user = [--grupo = ]]]
[ ...]
DESCRIPCIÓN
Un demonio TCP Git realmente simple que normalmente escucha en el puerto "DEFAULT_GIT_PORT", también conocido como 9418.
Espera una conexión que solicita un servicio y prestará ese servicio si es
habilitada.
Verifica que el directorio tiene el archivo mágico "git-daemon-export-ok", y
negarse a exportar cualquier directorio de Git que no haya sido marcado explícitamente para exportar de esta manera
(a menos que el --exportar-todo se especifica el parámetro). Si pasa algunas rutas de directorio como git
demonio argumentos, puede restringir aún más las ofertas a una lista blanca que incluya esos.
De forma predeterminada, solo está habilitado el servicio de paquete de carga, que sirve git buscar-paquete y git
ls-remoto clientes, que se invocan desde git ha podido recuperar, git recogida y git clonar.
Esto es ideal para actualizaciones de solo lectura, es decir, para extraer de repositorios de Git.
También existe un archivo de carga para servir git Archivo.
OPCIONES
- caminos-estrictos
Coincidir exactamente con las rutas (es decir, no permitir "/ foo / repo" cuando la ruta real es
"/foo/repo.git" o "/foo/repo/.git") y no haga rutas relativas al usuario. git demonio
se negará a comenzar cuando esta opción esté habilitada y no se especifique una lista blanca.
--base-path =
Vuelva a asignar todas las solicitudes de ruta en relación con la ruta dada. Esto es una especie de "raíz de Git"
- si tu corres git demonio con --base-path = / srv / git en example.com, si luego
tratar de tirar git: //example.com/hello.git, git demonio interpretará el camino como
/srv/git/hola.git.
--base-path-relajado
Si --base-path está habilitado y la búsqueda del repositorio falla, con esta opción git demonio will
Intente buscar sin prefijar la ruta base. Esto es útil para cambiar a
--base-path use, sin dejar de permitir las rutas antiguas.
--interpolated-path =
Para admitir el alojamiento virtual, se puede utilizar una plantilla de ruta interpolada para dinámicamente
construir caminos alternativos. La plantilla admite% H para el nombre de host de destino como
proporcionado por el cliente pero convertido a minúsculas,% CH para el nombre de host canónico,
% IP para la dirección IP del servidor,% P para el número de puerto y% D para la ruta absoluta
del repositorio nombrado. Después de la interpolación, la ruta se valida con el
lista blanca de directorio.
--exportar-todo
Permitir extraer de todos los directorios que se parecen a los repositorios de Git (tener el objetos
y refs subdirectorios), incluso si no tienen la git-daemon-exportar-ok .
--inetd
Haga que el servidor se ejecute como un servicio inetd. Implica --syslog. Incompatible con --detach,
--port, --listen, --user y --group opciones.
--escuchar =
Escuche en una dirección IP o nombre de host específicos. Las direcciones IP pueden ser IPv4
dirección o una dirección IPv6 si es compatible. Si no se admite IPv6, entonces
--listen = hostname tampoco es compatible y --listen debe recibir una dirección IPv4.
Puede administrarse más de una vez. Incompatible con --inetd .
--port =
Escuche en un puerto alternativo. Incompatible con --inetd .
--init-timeout =
Tiempo de espera (en segundos) entre el momento en que se establece la conexión y el cliente
se recibe la solicitud (normalmente un valor bastante bajo, ya que debería ser básicamente
inmediato).
--timeout =
Tiempo de espera (en segundos) para sub-solicitudes de clientes específicas. Esto incluye el tiempo que lleva
para que el servidor procese la sub-solicitud y el tiempo dedicado a esperar la siguiente
solicitud del cliente.
--max-connections =
Número máximo de clientes simultáneos, el valor predeterminado es 32. Póngalo en cero para que no haya límite.
--syslog
Inicie sesión en syslog en lugar de stderr. Tenga en cuenta que esta opción no implica --verbose, por lo tanto
de forma predeterminada, solo se registrarán las condiciones de error.
--user-path, --user-path =
Permitir que se utilice la notación de ~ usuario en las solicitudes. Cuando se especifica sin parámetro,
las solicitudes a git: // host / ~ alice / foo se toman como una solicitud de acceso foo repositorio en
el directorio de inicio del usuario alice. Si se especifica --user-path = path, la misma solicitud
se toma como una solicitud para acceder a la ruta / repositorio foo en el directorio de inicio del usuario
Alicia.
--verboso
Registre detalles sobre las conexiones entrantes y los archivos solicitados.
--reutilizardirección
Utilice SO_REUSEADDR al vincular el conector de escucha. Esto permite que el servidor se reinicie
sin esperar a que se agote el tiempo de espera de las conexiones antiguas.
--despegar
Separe del caparazón. Implica --syslog.
--pid-file =
Guarde la identificación del proceso en presentar. Se ignora cuando el demonio se ejecuta bajo --inetd.
--user = , --grupo =
Cambie el uid y el gid del demonio antes de ingresar al ciclo de servicio. Cuando solo --usuario es
dado sin --group, se utiliza el ID de grupo principal del usuario. Los valores de la
se les da la opción a conseguirpwnam(3) y getgrnam(3) y los ID numéricos no son compatibles.
Dar estas opciones es un error cuando se usa con --inetd; utilizar la facilidad de inet
demonio para lograr lo mismo antes de generar git demonio si es necesario.
Como muchos programas que cambian la identificación de usuario, el demonio no restablece el entorno
variables como $ HOME cuando ejecuta programas git, por ejemplo, upload-pack y receive-pack.
Al utilizar esta opción, es posible que también desee configurar y exportar HOME para que apunte a la casa.
directorio de antes de iniciar el demonio, y asegúrese de que cualquier configuración de Git
los archivos en ese directorio son legibles por .
--enable = , --disable =
Habilite / deshabilite el servicio en todo el sitio de forma predeterminada. Tenga en cuenta que un servicio deshabilitado
todo el sitio aún se puede habilitar por repositorio si está marcado como reemplazable y el
repositorio habilita el servicio con un elemento de configuración.
--allow-override = , --forbid-override =
Permitir / prohibir anular el valor predeterminado en todo el sitio con la configuración por repositorio. Por
por defecto, todos los servicios pueden ser anulados.
- [no-] errores-informativos
Cuando los errores informativos están activados, git-daemon informará errores más detallados a
el cliente, diferenciando condiciones como "no hay tal repositorio" de "repositorio no
exportado ". Esto es más conveniente para los clientes, pero puede filtrar información sobre el
existencia de repositorios no exportados. Cuando los errores informativos no están habilitados, todos
los errores informan "acceso denegado" al cliente. El valor predeterminado es --no-informative-errors.
--access-hook =
Cada vez que un cliente se conecta, primero ejecute un comando externo especificado por el
con el nombre del servicio (por ejemplo, "upload-pack"), ruta al repositorio, nombre de host (% H),
nombre de host canónico (% CH), dirección IP (% IP) y puerto TCP (% P) como línea de comandos
argumentos. El comando externo puede decidir rechazar el servicio saliendo con un
estado distinto de cero (o para permitirlo saliendo con un estado cero). También puede mirar
las variables de entorno $ REMOTE_ADDR y $ REMOTE_PORT para obtener información sobre el solicitante
al tomar esta decisión.
El comando externo puede opcionalmente escribir una sola línea en su salida estándar para ser
enviado al solicitante como un mensaje de error cuando rechaza el servicio.
Un directorio para agregar a la lista blanca de directorios permitidos. A menos que --strict -path sea
especificado, esto también incluirá subdirectorios de cada directorio nombrado.
SERVICIOS
Estos servicios se pueden habilitar / deshabilitar globalmente usando las opciones de línea de comandos de este
mando. Si se desea un control más fino (por ejemplo, para permitir git Archivo estar en contra
solo en unos pocos repositorios seleccionados que sirve el demonio), la configuración por repositorio
El archivo se puede utilizar para habilitarlos o deshabilitarlos.
cargar-paquete
Esto sirve git buscar-paquete y git ls-remoto clientela. Está habilitado de forma predeterminada, pero un
El repositorio puede deshabilitarlo estableciendo el elemento de configuración daemon.uploadpack en falso.
cargar-archivo
Esto sirve git Archivo --remoto. Está deshabilitado de forma predeterminada, pero un repositorio puede
habilítelo estableciendo el elemento de configuración daemon.uploadarch en verdadero.
paquete de recepción
Esto sirve git paquete de envío clientes, lo que permite la inserción anónima. Está deshabilitado por defecto,
como hay no autenticación en el protocolo (en otras palabras, cualquiera puede presionar
cualquier cosa en el repositorio, incluida la eliminación de referencias). Esto está destinado únicamente a
entorno de LAN cerrado donde todo el mundo es amigable. Este servicio se puede habilitar configurando
daemon.receivepack elemento de configuración a verdadero.
EJEMPLOS
Asumimos lo siguiente en / etc / services
$grep 9418 / etc / services
git 9418 / tcp # Sistema de control de versiones de Git
git demonio como servidor inetd
Para configurar git demonio como un servicio inetd que maneja cualquier repositorio bajo el
conjunto de directorios incluidos en la lista blanca, / pub / foo y / pub / bar, coloque una entrada como el
siguiendo en / etc / inetd todo en una línea:
git stream tcp nowait nadie / usr / bin / git
git daemon --inetd --verbose --exportar todo
/ pub / foo / pub / bar
git demonio como servidor inetd para hosts virtuales
Para configurar git demonio como un servicio inetd que maneja repositorios para diferentes
hosts virtuales, www.example.com y www.example.org, coloque una entrada como la siguiente
en / etc / inetd todo en una línea:
git stream tcp nowait nadie / usr / bin / git
git daemon --inetd --verbose --exportar todo
--interpolated-path = / pub /% H% D
/pub/www.ejemplo.org/software
/pub/www.ejemplo.com/software
/software
En este ejemplo, el directorio de nivel raíz / pub contendrá un subdirectorio para cada
nombre de host virtual compatible. Además, ambos hosts anuncian repositorios simplemente como
git: //www.example.com/software/repo.git. Para clientes anteriores a 1.4.0, un enlace simbólico de
/ software en el repositorio predeterminado apropiado.
git demonio como demonio regular para hosts virtuales
Para configurar git demonio como un servicio regular, no inetd que maneja repositorios para
múltiples hosts virtuales basados en sus direcciones IP, inicie el demonio así:
git daemon --verbose --exportar-todo
--interpolated-path = / pub /% IP /% D
/pub/192.168.1.200/software
/pub/10.10.220.23/software
En este ejemplo, el directorio de nivel raíz / pub contendrá un subdirectorio para cada
dirección IP de host virtual compatible. Aún se puede acceder a los repositorios por nombre de host
sin embargo, asumiendo que corresponden a estas direcciones IP.
habilitar / deshabilitar selectivamente servicios por repositorio
Para permitir git Archivo --remoto y deshabilitar git ha podido recuperar contra un repositorio, tenga el
siguiente en el archivo de configuración en el repositorio (que es el archivo config al lado de
Director de escuela, refs y objetos).
[demonio]
uploadpack = falso
uploadarch = verdadero
MEDIO AMBIENTE
git demonio establecerá REMOTE_ADDR a la dirección IP del cliente que se conectó a él, si
la dirección IP está disponible. REMOTE_ADDR estará disponible en el entorno de hooks
llamado cuando se realizan los servicios.
GIT
Parte de los git(1) suite
Use git-daemon en línea usando los servicios de onworks.net