`--export-all`::
Allow pulling from all directories that look like Git repositories
(have the 'objects' and 'refs' subdirectories), even if they
do not have the `git-daemon-export-ok` file.
`--inetd`::
Have the server run as an inetd service. Implies `--syslog` (may
be overridden with `--log-destination=`).
Incompatible with `--detach`, `--port`, `--listen`, `--user` and
`--group` options.
`--listen=<host-or-ipaddr>`::
Listen on a specific IP address or hostname. IP addresses can
be either an IPv4 address or an IPv6 address if supported. If IPv6
is not supported, then `--listen=<hostname>` is also not supported
and `--listen` must be given an IPv4 address.
Can be given more than once.
Incompatible with `--inetd` option.
`--port=<n>`::
Listen on an alternative port. Incompatible with `--inetd` option.
`--init-timeout=<n>`::
Timeout (in seconds) between the moment the connection is established
and the client request is received (typically a rather low value, since
that should be basically immediate).
`--timeout=<n>`::
Timeout (in seconds) for specific client sub-requests. This includes
the time it takes for the server to process the sub-request and the
time spent waiting for the next client's request.
`--max-connections=<n>`::
Maximum number of concurrent clients, defaults to 32. Set it to
zero for no limit.
`--syslog`::
Short for `--log-destination=syslog`.
`--log-destination=<destination>`::
Send log messages to the specified destination.
Note that this option does not imply `--verbose`,
thus by default only error conditions will be logged.
The _<destination>_ must be one of:
+
--
`stderr`::
Write to standard error.
Note that if `--detach` is specified,
the process disconnects from the real standard error,
making this destination effectively equivalent to `none`.
`syslog`::
Write to syslog, using the `git-daemon` identifier.
`none`::
Disable all logging.
--
+
The default destination is `syslog` if `--inetd` or `--detach` is specified,
otherwise `stderr`.
`--user-path`::
`--user-path=<path>`::
Allow {tilde}user notation to be used in requests. When
specified with no parameter, a request to
git://host/{tilde}alice/foo is taken as a request to access
'foo' repository in the home directory of user `alice`.
If `--user-path=<path>` is specified, the same request is
taken as a request to access `<path>/foo` repository in
the home directory of user `alice`.
`--verbose`::
Log details about the incoming connections and requested files.
`--reuseaddr`::
Use `SO_REUSEADDR` when binding the listening socket.
This allows the server to restart without waiting for
old connections to time out.
`--detach`::
Detach from the shell. Implies `--syslog`.
`--pid-file=<file>`::
Save the process id in _<file>_. Ignored when the daemon
is run under `--inetd`.
`--user=<user>`::
`--group=<group>`::
Change daemon's uid and gid before entering the service loop.
When only `--user` is given without `--group`, the
primary group ID for the user is used. The values of
the option are given to `getpwnam(3)` and `getgrnam(3)`
and numeric IDs are not supported.
+
Giving these options is an error when used with `--inetd`; use
the facility of inet daemon to achieve the same before spawning
`git daemon` if needed.
+
Like many programs that switch user id, the daemon does not reset
environment variables such as `HOME` when it runs git programs,
e.g. `upload-pack` and `receive-pack`. When using this option, you
may also want to set and export `HOME` to point at the home
directory of _<user>_ before starting the daemon, and make sure any
Git configuration files in that directory are readable by _<user>_.
`--enable=<service>`::
`--disable=<service>`::
Enable/disable the service site-wide per default. Note
that a service disabled site-wide can still be enabled
per repository if it is marked overridable and the
repository enables the service with a configuration
item.
`--allow-override=<service>`::