GIT-DAEMON(1) Git Manual GIT-DAEMON(1) (NAME) git-daemon - (SYNOPSIS) git daemon [--verbose] [--syslog] [--export-all] [--timeout=] [--init-timeout=] [--max-connections=] [--strict-paths] [--base-path=] [--base-path-relaxed] [--user-path | --user-path=] [--interpolated-path=] [--reuseaddr] [--detach] [--pid-file=] [--enable=] [--disable=] [--allow-override=] [--forbid-override=] [--access-hook=] [--[no-]informative-errors] [--inetd | [--listen=] [--port=] [--user= [--group=]]] [--log-destination=(stderr|syslog|none)] [...] (DESCRIPTION) ( ) TCP <> . . "git-daemon-export-ok" ( --export-all ). git daemon . upload-pack git fetch-pack git ls-remote ( git fetch git pull git clone ) . (pull) . upload-archive git archive . (OPTIONS) --strict-paths ( "/foo/repo" "/foo/repo.git" "/foo/repo/.git" ) . git daemon . --base-path= . << >> - git daemon --base-path=/srv/git example.com git://example.com/hello.git git daemon /srv/git/hello.git . --base-path-relaxed --base-path git daemon . --base-path . --interpolated-path= . : %H %CH (canonical) %IP IP %P %D . . --export-all ( objects refs ) git-daemon-export-ok . --inetd inetd. --syslog ( --log-destination= ). --detach --port --listen --user --group. --listen= IP . IP IPv4 IPv6 . IPv6 --listen= --listen IPv4 . . --inetd. --port= . --inetd. --init-timeout= ( ) ( ). --timeout= ( ) . . --max-connections= . . --syslog --log-destination=syslog. --log-destination= . --verbose . : stderr . --detach none . syslog syslog git-daemon. none . --inetd --detach syslog stderr . --user-path, --user-path= ~user . git://host/~alice/foo foo alice . --user-path= /foo alice . --verbose . --reuseaddr SO_REUSEADDR (bind). . --detach . --syslog. --pid-file= . --inetd . --user=, --group= (uid) (gid) . --user --group . getpwnam(3) getgrnam(3) . --inetd git daemon inet . upload-pack receive-pack HOME . HOME export . --enable=, --disable= / . . --allow-override=, --forbid-override= / . . --informative-errors, --no-informative-errors git-daemon <> ( ) <> ( ) . . <> ( ) . --no-informative-errors . --access-hook= ( "upload-pack") (%H) (%CH) IP (%IP) TCP (%P) . ( ). $REMOTE_ADDR $REMOTE_PORT . . . git-daemon . --strict-paths . (SERVICES) / . ( git archive ) . upload-pack git fetch-pack git ls-remote . daemon.uploadpack false . upload-archive git archive --remote . daemon.uploadarch true . receive-pack git send-pack (push) . ( ). (LAN) . daemon.receivepack true . (EXAMPLES) /etc/services : $ grep 9418 /etc/services git 9418/tcp # Git Version Control System git daemon inetd git daemon inetd /pub/foo /pub/bar /etc/inetd : git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all /pub/foo /pub/bar git daemon inetd git daemon inetd www.example.com www.example.org /etc/inetd : 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 /pub . git://www.example.com/software/repo.git . .. /software . git daemon git daemon inetd IP : git daemon --verbose --export-all --interpolated-path=/pub/%IP/%D /pub/192.168.1.200/software /pub/10.10.220.23/software /pub IP . IP . / git archive --remote git fetch ( config HEAD refs objects) : [daemon] uploadpack = false uploadarch = true (ENVIRONMENT) git daemon IP REMOTE_ADDR IP . REMOTE_ADDR . GIT git(1) Git 2.55.0 2026-06-29 GIT-DAEMON(1)