Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.44.1 → 2.47.0 no changes
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 no changes
- 2.43.0 11/20/23
- 2.37.3 → 2.42.3 no changes
- 2.37.2 08/11/22
- 2.22.1 → 2.37.1 no changes
- 2.22.0 06/07/19
- 2.17.1 → 2.21.4 no changes
- 2.17.0 04/02/18
- 2.10.5 → 2.16.6 no changes
- 2.9.5 07/30/17
- 2.2.3 → 2.8.6 no changes
- 2.1.4 12/17/14
- 2.0.5 12/17/14
SYNOPSIS
git daemon [--verbose] [--syslog] [--export-all] [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>] [--strict-paths] [--base-path=<chemin>] [--base-path-relaxed] [--user-path | --user-path=<chemin>] [--interpolated-path=<chemin-de-modèle>] [--reuseaddr] [--detach] [--pid-file=<fichier>] [--enable=<service>] [--disable=<service>] [--allow-override=<service>] [--forbid-override=<service>] [--access-hook=<chemin>] [--[no-]informative-errors] [--inetd | [--listen=<hĂ´te-ou-adr-ip>] [--port=<n>] [--user=<user> [--group=<groupe>]]] [--log-destination=(stderr|syslog|none)] [<rĂ©pertoire>…]
DESCRIPTION
Un dĂ©mon TCP Git très simple qui Ă©coute normalement sur le port "DEFAULT_GIT_PORT" soit 9418. Il attend une connexion demandant un service, et servira ce service s’il est activĂ©.
Il vĂ©rifie que le rĂ©pertoire possède le fichier magique "git-daemon-export-ok", et il refusera d’exporter tout rĂ©pertoire Git qui n’a pas Ă©tĂ© explicitement marquĂ© pour l’exportation de cette façon (Ă moins que le paramètre --export-all
soit spĂ©cifiĂ©). Si vous passez certains chemins de rĂ©pertoire en tant qu’arguments de git daemon, les offres sont limitĂ©es aux dĂ©pĂ´ts dans ces rĂ©pertoires.
Par défaut, seul le service upload-pack
est activé, qui sert les clients git fetch-pack et git ls-remote, qui sont invoqués depuis git fetch, git pull, et git clone.
Cette mĂ©thode convient parfaitement aux mises Ă jour en lecture seule, c’est-Ă -dire Ă l’extraction de dĂ©pĂ´ts Git.
Une upload-archive existe Ă©galement pour servir git archive.
OPTIONS
- --strict-paths
-
Faire correspondre exactement les chemins (c’est-Ă -dire ne pas autoriser « /foo/dĂ©pĂ´t » lorsque le chemin rĂ©el est « /foo/dĂ©pĂ´t.git » ou « /foo/dĂ©pĂ´t/.git ») et ne pas faire de chemins relatifs Ă l’utilisateur. git daemon refusera de dĂ©marrer lorsque cette option est activĂ©e et qu’aucun argument de rĂ©pertoire n’est spĂ©cifiĂ©.
- --base-path=<chemin>
-
Relocalise toutes les chemins de requĂŞtes comme relatifs au chemin donnĂ©. C’est une sorte de "racine Git" - si vous exĂ©cutez git daemon avec --base-path=/srv/git sur exemple.com, alors si vous essayez plus tard de tirer git://exemple.com/hello.git, git daemon interprĂ©tera le chemin comme
/srv/git/hello.git
. - --base-path-relaxed
-
Si --base-path est activĂ© et que la recherche de dĂ©pĂ´t Ă©choue, avec cette option git daemon tentera de faire la recherche sans prĂ©fixer le chemin de base. Ceci est utile pour passer Ă l’utilisation de --base-path, tout en autorisant toujours les anciens chemins.
- --interpolated-path=<modèle-de-chemin>
-
Pour prendre en charge l’hĂ©bergement virtuel, un modèle de chemin interpolĂ© peut ĂŞtre utilisĂ© pour construire dynamiquement des chemins alternatifs. Le modèle prend en charge %H pour le nom d’hĂ´te cible tel que fourni par le client mais converti en minuscules, %CH pour le nom d’hĂ´te canonique, %IP pour l’adresse IP du serveur, %P pour le numĂ©ro de port et %D pour le chemin absolu du dĂ©pĂ´t nommĂ©. Après interpolation, le chemin est validĂ© par rapport Ă la liste des rĂ©pertoires.
- --export-all
-
Autoriser les tirages Ă partir de tous les rĂ©pertoires qui ressemblent Ă des dĂ©pĂ´ts Git (avec les sous-rĂ©pertoires objects et refs), mĂŞme s’ils ne possèdent pas le fichier git-daemon-export-ok.
- --inetd
-
Faire tourner le serveur comme un service inetd. Implique --syslog (peut être surchargé avec
--log-destination=
). Incompatible avec les options --detach, --port, --listen, --user et --group. - --listen=<hĂ´te-ou-adr-ip>
-
Écouter sur une adresse IP ou un nom d’hĂ´te spĂ©cifique. Les adresses IP peuvent ĂŞtre soit une adresse IPv4, soit une adresse IPv6 si elle est supportĂ©e. Si IPv6 n’est pas supportĂ©, alors --listen=<nom-d-hote> n’est pas supportĂ© non plus et --listen doit recevoir une adresse IPv4. Peut ĂŞtre donnĂ© plus d’une fois. Incompatible avec l’option
--inetd
. - --port=<n>
-
Écouter sur un port alternatif. Incompatible avec l’option
--inetd
. - --init-timeout=<n>
-
DĂ©lai d’attente (en secondes) entre le moment oĂą la connexion est Ă©tablie et celui oĂą la demande du client est reçue (gĂ©nĂ©ralement une valeur assez faible, puisque cela devrait ĂŞtre essentiellement immĂ©diat).
- --timeout=<n>
-
DĂ©lai d’attente (en secondes) pour les sous-requĂŞtes spĂ©cifiques du client. Cela comprend le temps nĂ©cessaire au serveur pour traiter la sous-demande et le temps d’attente de la demande du client suivant.
- --max-connections=<n>
-
Nombre maximum de clients simultanés, la valeur par défaut est de 32. Définissez-le à zéro pour ne pas avoir de limite.
- --syslog
-
Abréviation de
--log-destination=syslog
. - --log-destination=<destination>
-
Envoyer les messages de journal Ă la destination spĂ©cifiĂ©e. Notez que cette option n’implique pas --verbose, donc par dĂ©faut, seules les conditions d’erreur seront enregistrĂ©es. La <destination> doit ĂŞtre l’une des suivantes :
- stderr
-
Écriture sur le flux d’erreur standard. Notez que si
--detach
est spĂ©cifiĂ©, le processus se dĂ©connecte de l’erreur standard rĂ©elle, rendant cette destination effectivement Ă©quivalente Ănone
. - syslog
-
Écrire dans syslog, en utilisant l’identifiant
git-daemon
. - none
-
DĂ©sactiver toute la journalisation.
La destination par défaut est
syslog
si--inetd
ou--detach
est spécifié, sinonstderr
. - --user-path
- --user-path=<chemin>
-
Autoriser l’utilisation de la notation ~user dans les requêtes. Lorsqu’elle est spécifiée sans paramètre, une demande à git://hôte/~alice/foo est considérée comme une demande d’accès au dépôt foo dans le répertoire de base de l’utilisateur
alice
. Si--user-path=<chemin>
est spécifié, la même demande est prise comme une demande d’accès au dépôt<chemin>/foo' dans le répertoire de base de l’utilisateur `alice
. - --verbose
-
Enregistre les détails des connexions entrantes et des fichiers demandés.
- --reuseaddr
-
Utiliser SO_REUSEADDR pour lier la socket d’Ă©coute. Cela permet au serveur de redĂ©marrer sans attendre la fin des anciennes connexions.
- --detach
-
Se détacher du shell. Implique --syslog.
- --pid-file=<fichier>
-
Sauvegarder l’id du processus dans le fichier. IgnorĂ© lorsque le dĂ©mon est exĂ©cutĂ© sous
--inetd
. - --user=<utilisateur>
- --group=<groupe>
-
Changer le uid et gid du daemon avant d’entrer la boucle du service. Le groupe ID primaire de l’utilisateur est utilisĂ© quand seule l’option
--user
est donnĂ©e sans l’option--group
. Les valeurs de l’option sont donnĂ©es pargetpwnam(3)
etgetgrnam(3)
, les valeurs numĂ©riques ne sont pas supportĂ©es.Donner ces options est une erreur lorsqu’elles sont utilisĂ©es avec
--inetd
; utilisez la fonction du daemon inet pour rĂ©aliser la mĂŞme chose avant de lancer git daemon si nĂ©cessaire.Comme beaucoup de programmes qui changent d’identitĂ© d’utilisateur, le daemon ne rĂ©initialise pas les variables d’environnement telles que
$HOME
lorsqu’il exĂ©cute les programmes git, par exempleupload-pack
etreceive-pack
. Si vous utilisez cette option, vous voudrez peut-être aussi définir et exporterHOME
pour qu’il pointe sur le rĂ©pertoire personnel de<utilisateur>
avant de lancer le démon, et vous assurer que tous les fichiers de configuration de Git dans ce répertoire sont lisibles par<utilisateur>
. - --enable=<service>
- --disable=<service>
-
Activer/désactiver le service à l’échelle du site par défaut. Notez qu’un service désactivé à l’échelle du site peut toujours être activé par dépôt s’il est marqué comme substituable et que le dépôt active le service avec un élément de configuration.
- --allow-override=<service>
- --forbid-override=<service>
-
Autoriser/interdire le remplacement de la valeur par défaut du site par une configuration par dépôt. Par défaut, tous les services peuvent être remplacés.
- --[no-]informative-errors
-
Lorsque les erreurs informatives sont activĂ©es, git-daemon rapportera des erreurs plus dĂ©taillĂ©es au client, en diffĂ©renciant des conditions comme "no such repository" de "repository not exported". Ceci est plus pratique pour les clients, mais peut laisser fuir des informations sur l’existence de dĂ©pĂ´ts non exportĂ©s. Lorsque les erreurs informatives ne sont pas activĂ©es, toutes les erreurs signalent "accès refusĂ©" au client. La valeur par dĂ©faut est --no-informative-errors.
- --access-hook=<chemin>
-
Chaque fois qu’un client se connecte, il lance d’abord une commande externe spĂ©cifiĂ©e par le <chemin> avec le nom du service (par exemple "upload-pack" ;), le chemin vers le dĂ©pĂ´t, le nom d’hĂ´te (%H), le nom d’hĂ´te canonique (%CH), l’adresse IP (%IP) et le port TCP (%P) comme arguments de ligne de commande. La commande externe peut dĂ©cider de refuser le service en sortant avec un Ă©tat non nul (ou de l’autoriser en sortant avec un Ă©tat nul). Elle peut Ă©galement consulter les variables d’environnement $REMOTE_ADDR et
$REMOTE_PORT
pour en savoir plus sur le demandeur lorsqu’elle prend cette dĂ©cision.Le command externe peut Ă©crire optionalement une ligne en se sortie standard par ĂŞtre envoyĂ© pour le requisiteur comme une mĂ©ssage d’error quand lui decline le service.
- <répertoire>
-
Les arguments restants fournissent une liste de répertoires. Si des répertoires sont spécifiés, alors le processus
git-daemon
servira un rĂ©pertoire demandĂ© seulement s’il est contenu dans un de ces rĂ©pertoires. Si--strict-paths
est spĂ©cifiĂ©, alors le rĂ©pertoire demandĂ© doit correspondre exactement Ă l’un de ces rĂ©pertoires.
SERVICES
Ces services peuvent ĂŞtre globalement activĂ©s/dĂ©sactivĂ©s en utilisant les options de la ligne de commande de cette commande. Si un contrĂ´le plus fin est souhaitĂ© (par exemple pour permettre Ă git archive d’ĂŞtre exĂ©cutĂ© uniquement dans quelques dĂ©pĂ´ts sĂ©lectionnĂ©s que le dĂ©mon sert), le fichier de configuration par dĂ©pĂ´t peut ĂŞtre utilisĂ© pour les activer ou les dĂ©sactiver.
- upload-pack
-
Cela sert les clients git fetch-pack et git ls-remote. Il est activĂ© par dĂ©faut, mais un dĂ©pĂ´t peut le dĂ©sactiver en definissant l’Ă©lement de configuration daemon.uploadpack sur false.
- upload-archive
-
Cela sert git archive --remote. Il est dĂ©sactivĂ© par dĂ©faut, mais un dĂ©pĂ´t peut l’activer en definissant l’element de configuration daemon.uploadarch sur true.
- receive-pack
-
Cette fonction est destinĂ©e aux clients "git send-pack" et permet de faire des poussĂ©es anonymes. Il est dĂ©sactivĂ© par dĂ©faut, car il n’y a pas d’authentification dans le protocole (en d’autres termes, n’importe qui peut pousser n’importe quoi dans le dĂ©pĂ´t, y compris la suppression des rĂ©fĂ©rences). Ceci est uniquement destinĂ© Ă un environnement LAN fermĂ© oĂą tout le monde est amical. Ce service peut ĂŞtre activĂ© en mettant l’Ă©lĂ©ment de configuration
daemon.receivepack
Ătrue
.
EXEMPLES
- Nous supposons ce qui suit dans /etc/services
-
$ grep 9418 /etc/services git 9418/tcp # Système de gestion de version Git
- git daemon comme serveur inetd
-
Pour configurer git daemon comme un service inetd qui gère tout dépôt sous /pub/foo ou /pub/bar, placez une entrée comme ceci dans
/etc/inetd
sur une seule ligne :git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all /pub/foo /pub/bar
- git daemon comme serveur inetd pour des hĂ´tes virtuels
-
Pour configurer git daemon en tant que service inetd qui gère les dépôts pour différents hôtes virtuels, www.example.com et www.example.org, placez une entrée comme celle-ci dans /etc/inetd sur une seule ligne :
git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all --interpolated-path=/pub/%H%D /pub/www.example.org/software /pub/www.example.com/software /software
Dans cet exemple, le répertoire de niveau racine
/pub
contiendra un sous-rĂ©pertoire pour chaque nom d’hĂ´te virtuel supportĂ©. De plus, les deux hĂ´tes annoncent les dĂ©pĂ´ts simplement commegit://www.example.com/software/repo.git
. Pour les clients antérieurs à la version 1.4.0, un lien symbolique de/software
vers le dépôt par défaut approprié peut également être créé. - git daemon comme démon régulier pour des hôtes virtuels
-
Pour configurer git daemon comme un service ordinaire, non inetd, qui gère les dépôts de plusieurs hôtes virtuels en fonction de leurs adresses IP, démarrez le daemon comme suit :
git daemon --verbose --export-all --interpolated-path=/pub/%IP/%D /pub/192.168.1.200/software /pub/10.10.220.23/software
Dans cet exemple, le répertoire de niveau racine
/pub
contiendra un sous-rĂ©pertoire pour chaque adresse IP d’hĂ´te virtuel supportĂ©e. Les dĂ©pĂ´ts peuvent toujours ĂŞtre accĂ©dĂ©s par nom d’hĂ´te, en supposant qu’ils correspondent Ă ces adresses IP. - activer/dĂ©sactiver sĂ©lectivement les services par dĂ©pĂ´t
-
Pour activer l’option git archive --remote et dĂ©sactiver l’option git fetch contre un dĂ©pĂ´t, il faut avoir ce qui suit dans le fichier de configuration du dĂ©pĂ´t (c’est-Ă -dire le fichier config Ă cĂ´tĂ© de
HEAD
, refs et objects).[daemon] uploadpack = false uploadarch = true
ENVIRONNEMENT
git daemon dĂ©finira REMOTE_ADDR Ă l’adresse IP du client qui s’est connectĂ© Ă lui, si l’adresse IP est disponible. REMOTE_ADDR sera disponible dans l’environnement des crochets appelĂ©s lors de l’exĂ©cution des services.
GIT
Fait partie de la suite git[1]
TRADUCTION
Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .