这是 git-daemon 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
git-daemon - 一个非常简单的 Git 存储库服务器
概要
混帐 守护 [--verbose] [--syslog] [--export-all]
[--超时= ] [--init-超时= ] [--最大连接数= ]
[--strict-paths] [--base-path= ] [--base-path-relaxed]
[--用户路径| --用户路径= ]
[--插值路径= ]
[--reuseaddr] [--detach] [--pid-file= ]
[--启用= ] [--禁用= ]
[--允许覆盖= ] [--禁止覆盖= ]
[--access-hook= ] [--[无-]信息性错误]
[--inetd |
[--听= ] [--端口= ]
[--用户= [--组= ]]]
[ ...]
商品描述
一个非常简单的 TCP Git 守护进程,它通常侦听端口“DEFAULT_GIT_PORT”又名 9418。
它等待一个请求服务的连接,如果它是,则将提供该服务
启用。
它验证该目录是否具有魔术文件“git-daemon-export-ok”,它将
拒绝以这种方式导出任何未明确标记为导出的 Git 目录
(除非 --全部出口 参数指定)。 如果您将一些目录路径作为 混帐
守护 参数,您可以进一步将要约限制为包含这些要约的白名单。
默认只开启upload-pack服务,服务于 混帐 取包 和 混帐
ls-远程 客户端,从 混帐 取, 混帐 拉及 混帐 克隆.
这非常适合只读更新,即从 Git 存储库中提取。
还存在上传存档以提供服务 混帐 档案.
配置
--严格路径
完全匹配路径(即,当实际路径为
"/foo/repo.git" 或 "/foo/repo/.git") 并且不要做用户相关的路径。 混帐 守护
启用此选项且未指定白名单时将拒绝启动。
--base-path=
将所有路径请求重新映射为相对于给定路径。 这有点像“Git root”
- 如果你跑 混帐 守护 - --base-path=/srv/git 在example.com上,那么如果你以后
试着拉 git://example.com/hello.git, 混帐 守护 将路径解释为
/srv/git/hello.git.
--基本路径放宽
如果启用了 --base-path 并且 repo 查找失败,则使用此选项 混帐 守护 将
尝试在不添加基本路径前缀的情况下进行查找。 这对于切换到
--base-path 用法,同时仍然允许旧路径。
--interpolated-path=
为了支持虚拟主机,可以使用内插路径模板动态地
构建替代路径。 该模板支持 %H 作为目标主机名
由客户端提供但转换为全小写, %CH 为规范主机名,
%IP 为服务器的 IP 地址,%P 为端口号,%D 为绝对路径
的命名存储库。 插值后,路径根据
目录白名单。
--全部出口
允许从所有看起来像 Git 存储库的目录中提取(具有 对象
和 裁判 子目录),即使它们没有 git-daemon-导出-ok 文件中。
--inetd
让服务器作为 inetd 服务运行。 暗示 --syslog。 与 --detach 不兼容,
--port、--listen、--user 和 --group 选项。
--听=
侦听特定的 IP 地址或主机名。 IP 地址可以是 IPv4
地址或 IPv6 地址(如果支持)。 如果不支持 IPv6,则
--listen=hostname 也不支持,必须为 --listen 提供 IPv4 地址。
可以多次给予。 不兼容 --inetd 选项。
--端口=
侦听备用端口。 不兼容 --inetd 选项。
--init-超时=
建立连接与客户端之间的超时(以秒为单位)
收到请求(通常是一个相当低的值,因为这应该基本上是
即时)。
--超时=
特定客户端子请求的超时(以秒为单位)。 这包括所需的时间
服务器处理子请求和等待下一个请求所花费的时间
客户的要求。
--最大连接数=
最大并发客户端数,默认为 32。将其设置为零表示没有限制。
--系统日志
登录到 syslog 而不是 stderr。 请注意,此选项并不意味着 --verbose,因此
默认情况下,只会记录错误条件。
--user-path, --user-path=
允许在请求中使用 ~user 符号。 不带参数指定时,
对 git://host/~alice/foo 的请求被视为访问请求 FOO 存储库中
用户 alice 的主目录。 如果指定了--user-path=path,则相同的请求
被视为访问用户主目录中的 path/foo 存储库的请求
爱丽丝。
--详细
记录有关传入连接和请求文件的详细信息。
--重用地址
绑定侦听套接字时使用 SO_REUSEADDR。 这允许服务器重新启动
无需等待旧连接超时。
- 分离
从外壳上拆下。 暗示 --syslog。
--pid-文件=
将进程 ID 保存在 文件. 当守护进程在 --inetd 下运行时被忽略。
--用户= , --group=
在进入服务循环之前更改守护进程的 uid 和 gid。 当只有 --user 是
如果没有 --group,则使用用户的主要组 ID。 的价值观
选项被给予 获取权限(3)和 格南(3) 和数字 ID 不受支持。
与--inetd 一起使用时,提供这些选项是错误的; 使用 inet 的便利
守护进程在产卵前实现相同的目标 混帐 守护 如果需要的话。
像许多切换用户 id 的程序一样,守护进程不会重置环境
运行git程序时的变量,例如$HOME,例如upload-pack和receive-pack。
使用此选项时,您可能还想设置和导出 HOME 以指向家
目录在启动守护进程之前,并确保任何 Git 配置
该目录中的文件可以通过.
--启用= , --禁用=
默认情况下启用/禁用站点范围的服务。 请注意,服务已禁用
如果每个存储库被标记为可覆盖并且
存储库通过配置项启用服务。
--allow-override= , --forbid-override=
允许/禁止使用每个存储库配置覆盖站点范围的默认值。 经过
默认情况下,所有服务都可能被覆盖。
--[no-] 信息错误
当信息性错误被打开时,git-daemon 将报告更详细的错误给
客户端,区分条件,例如“没有这样的存储库”和“没有存储库”
导出”。这对客户端来说更方便,但可能会泄露有关
存在未导出的存储库。 当信息性错误未启用时,所有
错误向客户端报告“拒绝访问”。 默认值为 --no-informative-errors。
--access-hook=
每次客户端连接时,首先运行由客户端指定的外部命令
包含服务名称(例如“upload-pack”)、存储库路径、主机名(%H)、
规范主机名 (%CH)、IP 地址 (%IP) 和 TCP 端口 (%P) 作为其命令行
论据。 外部命令可以通过退出来决定拒绝服务
非零状态(或通过以零状态退出来允许它)。 它也可以看
$REMOTE_ADDR 和 $REMOTE_PORT 环境变量以了解请求者
在做出这个决定时。
外部命令可以选择将一行写入其标准输出
当请求者拒绝服务时作为错误消息发送给请求者。
要添加到允许目录白名单的目录。 除非 --strict-paths 是
指定这也将包括每个命名目录的子目录。
服务范围
可以使用此命令行选项全局启用/禁用这些服务
命令。 如果需要更细粒度的控制(例如允许 混帐 档案 被反对
仅在守护程序服务的几个选定存储库中),每个存储库的配置
文件可用于启用或禁用它们。
上传包
这服务 混帐 取包 和 混帐 ls-远程 客户。 它默认启用,但
repository 可以通过将 daemon.uploadpack 配置项设置为 false 来禁用它。
上传存档
这服务 混帐 档案 --远程. 默认情况下它是禁用的,但存储库可以
通过将 daemon.uploadarch 配置项设置为 true 来启用它。
接收包
这服务 混帐 发送包 客户端,允许匿名推送。 默认情况下是禁用的,
因为有 没有 协议中的身份验证(换句话说,任何人都可以推送
存储库中的任何内容,包括删除引用)。 这仅适用于
每个人都很友好的封闭 LAN 设置。 可以通过设置启用此服务
daemon.receivepack 配置项为true。
示例
我们假设以下 / etc /服务
$ grep 9418 / etc /服务
git 9418/tcp # Git 版本控制系统
混帐 守护 作为 inetd 服务器
建立 混帐 守护 作为处理任何存储库下的 inetd 服务
列入白名单的一组目录,/pub/foo 和 /pub/bar,放置一个条目,如
一行进入 /etc/inetd 中:
git 流 tcp nowait 没有人 /usr/bin/git
git 守护进程 --inetd --verbose --export-all
/酒吧/富/酒吧/酒吧
混帐 守护 作为虚拟主机的 inetd 服务器
建立 混帐 守护 作为处理不同存储库的 inetd 服务
虚拟主机 www.example.com 和 www.example.org,放置如下条目
进入 /etc/inetd 一行:
git 流 tcp nowait 没有人 /usr/bin/git
git 守护进程 --inetd --verbose --export-all
--插值路径=/pub/%H%D
/pub/www.example.org/software
/pub/www.example.com/software
/软件
在本例中,根级目录 /pub 将包含每个
支持虚拟主机名。 此外,两个主机都简单地将存储库广告为
git://www.example.com/software/repo.git。 对于 1.4.0 之前的客户端,来自
/software 也可以放入适当的默认存储库。
混帐 守护 作为虚拟主机的常规守护程序
建立 混帐 守护 作为处理存储库的常规、非 inetd 服务
多个虚拟主机基于它们的 IP 地址,像这样启动守护进程:
git 守护进程 --verbose --export-all
--interpolated-path=/pub/%IP/%D
/pub/192.168.1.200/软件
/pub/10.10.220.23/软件
在本例中,根级目录 /pub 将包含每个
支持虚拟主机 IP 地址。 存储库仍然可以通过主机名访问
但是,假设它们对应于这些 IP 地址。
有选择地启用/禁用每个存储库的服务
启用 混帐 档案 --远程 并禁用 混帐 取 针对存储库,拥有
在存储库中的配置文件(即文件 配置 旁边
校长 , 裁判 和 对象).
[守护进程]
上传包=假
上传档案 = 真
环境
混帐 守护 将 REMOTE_ADDR 设置为连接到它的客户端的 IP 地址,如果
IP 地址可用。 REMOTE_ADDR 将在 hooks 环境中可用
执行服务时调用。
GIT
部分 混帐(1) 套房
使用 onworks.net 服务在线使用 git-daemon