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.50.1 → 2.56.0 no changes
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.37.3 → 2.42.4 no changes
-
2.37.2
2022-08-11
- 2.22.1 → 2.37.1 no changes
-
2.22.0
2019-06-07
- 2.17.1 → 2.21.4 no changes
-
2.17.0
2018-04-02
- 2.10.5 → 2.16.6 no changes
-
2.9.5
2017-07-30
- 2.2.3 → 2.8.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОБЗОР
gitdaemon[--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=<хост-или-ip-адрес>] [--port=<число>] [--user=<пользователь> [--group=<группа>]]] [--log-destination=(stderr|syslog|none)] [<каталог>…]
ОПИСАНИЕ
Очень простой TCP-демон Git, который обычно прослушивает порт "DEFAULT_GIT_PORT" (он же 9418). Он ожидает соединения с запросом на службу и предоставляет эту службу, если она включена.
Он проверяет, есть ли в каталоге магический файл "git-daemon-export-ok", и отказывается экспортировать любой Git-каталог, который не был явно помечен для экспорта таким образом (если не указан параметр --export-all). Если вы передаёте некоторые пути каталогов в качестве аргументов git daemon, предложения ограничиваются репозиториями в этих каталогах.
По умолчанию включена только служба upload-pack, которая обслуживает клиентов git fetch-pack и git ls-remote, вызываемых из git fetch, git pull и git clone.
Это идеально подходит для обновлений только для чтения, т.е. получения из репозиториев Git.
Также существует upload-archive для обслуживания git archive.
ПАРАМЕТРЫ
-
--strict-paths -
Сопоставлять пути точно (т.е. не разрешать "/foo/repo", когда реальный путь — "/foo/repo.git" или "/foo/repo/.git") и не использовать пути относительно пользователя.
gitdaemonоткажется запускаться, когда этот параметр включён и не указаны аргументы каталогов. -
--base-path=<путь> -
Переопределяет все запросы путей как относительные к указанному пути. Это своего рода "корень Git" — если вы запустите
gitdaemonс--base-path=/srv/gitнаexample.com, то если позже вы попытаетесь получить данные изgit://example.com/hello.git,gitdaemonинтерпретирует путь как/srv/git/hello.git. -
--base-path-relaxed -
Если
--base-pathвключён и поиск репозитория не удаётся, с этим параметромgitdaemonпопытается выполнить поиск без добавления базового пути. Это полезно для перехода к использованию--base-path, всё ещё разрешая старые пути. -
--interpolated-path=<шаблон-пути> -
Для поддержки виртуального хостинга можно использовать шаблон интерполированного пути для динамического создания альтернативных путей. Шаблон поддерживает
%Hдля имени целевого хоста, предоставленного клиентом, но преобразованного в нижний регистр,%CHдля канонического имени хоста,%IPдля IP-адреса сервера,%Pдля номера порта и%Dдля абсолютного пути именованного репозитория. После интерполяции путь проверяется по списку каталогов. -
--export-all -
Разрешить получение из всех каталогов, которые выглядят как репозитории Git (имеют подкаталоги objects и refs), даже если в них нет файла
git-daemon-export-ok. -
--inetd -
Запустить сервер как службу inetd. Подразумевает
--syslog(может быть переопределено с помощью--log-destination=). Несовместимо с параметрами--detach,--port,--listen,--userи--group. -
--listen=<хост-или-ip-адрес> -
Прослушивать определённый IP-адрес или имя хоста. IP-адреса могут быть либо адресом IPv4, либо адресом IPv6, если поддерживается. Если IPv6 не поддерживается, то
--listen=<имя-хоста> также не поддерживается, и--listenдолжен быть задан IPv4-адрес. Может быть указан несколько раз. Несовместимо с параметром--inetd. -
--port=<n> -
Прослушивать альтернативный порт. Несовместимо с параметром
--inetd. -
--init-timeout=<n> -
Тайм-аут (в секундах) между моментом установления соединения и получением запроса клиента (обычно довольно низкое значение, поскольку это должно происходить практически мгновенно).
-
--timeout=<n> -
Тайм-аут (в секундах) для конкретных клиентских подзапросов. Это включает время, необходимое серверу для обработки подзапроса, и время ожидания следующего запроса клиента.
-
--max-connections=<n> -
Максимальное количество одновременных клиентов, по умолчанию 32. Установите ноль для отсутствия ограничения.
-
--syslog -
Краткая форма для
--log-destination=syslog. -
--log-destination=<назначение> -
Отправлять сообщения журнала в указанное место назначения. Обратите внимание, что этот параметр не подразумевает
--verbose, поэтому по умолчанию будут регистрироваться только ошибочные ситуации. <назначение> должно быть одним из:-
stderr -
Записывать в стандартный вывод ошибок. Обратите внимание, что если указан
--detach, процесс отключается от реального стандартного вывода ошибок, делая это место назначения фактически эквивалентнымnone. -
syslog -
Записывать в syslog, используя идентификатор
git-daemon. -
none -
Отключить все журналирование.
Назначение по умолчанию —
syslog, если указан--inetdили--detach, в противном случае —stderr. -
-
--user-path -
--user-path=<путь> -
Разрешить использование обозначения ~пользователь в запросах. Если указано без параметра, запрос к git://host/~alice/foo рассматривается как запрос на доступ к репозиторию foo в домашнем каталоге пользователя
alice. Если указан--user-path=<путь>, тот же запрос рассматривается как запрос на доступ к репозиторию <путь>/fooв домашнем каталоге пользователяalice. -
--verbose -
Регистрировать подробную информацию о входящих соединениях и запрошенных файлах.
-
--reuseaddr -
Использовать
SO_REUSEADDRпри привязке прослушивающего сокета. Это позволяет серверу перезапускаться без ожидания тайм-аута старых соединений. -
--detach -
Отсоединиться от оболочки. Подразумевает
--syslog. -
--pid-file=<файл> -
Сохранить идентификатор процесса в <файле>. Игнорируется, когда демон запущен под
--inetd. -
--user=<пользователь> -
--group=<группа> -
Изменить uid и gid демона перед входом в цикл обслуживания. Если указан только
--userбез--group, используется основной идентификатор группы для пользователя. Значения параметра передаются вgetpwnam(3) иgetgrnam(3), числовые идентификаторы не поддерживаются.Указание этих параметров при использовании с
--inetdявляется ошибкой; при необходимости используйте возможность демона inet для достижения того же результата перед запускомgitdaemon.Как и многие программы, которые переключают идентификатор пользователя, демон не сбрасывает переменные среды, такие как
HOME, когда запускает программы git, напримерupload-packиreceive-pack. При использовании этого параметра вам также может потребоваться установить и экспортироватьHOME, чтобы он указывал на домашний каталог <пользователя> перед запуском демона, и убедиться, что любые файлы конфигурации Git в этом каталоге доступны для чтения <пользователем>. -
--enable=