对于快速且无需授权的Git数据访问,可以根据Git协议建立基于守护进程的仓库。因为,不包含授权服务,通过该协议管理的内容将在其网络公开。
如果运行在防火墙之外的服务器,它应该是只对那些公开的只读项目服务。
如果运行在防火墙之内的服务器,它可以用于支撑大量参与人员或自动系统(如持续集成或编译的主机)进行只读访问的项目,从而省略SSH公钥的麻烦。
通常,只需要以守护进程的形式运行该命令
git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
--reuseaddr 允许服务器在无需等待旧连接超时的情况下重启。
--base-path 允许用户在未完全指定路径下克隆项目。
可以通过许多方式将该进程以守护进程的方式运行,这主要取决于使用的操作系统。
如果是Ubuntu,可以使用Upstart脚本,在/etc/event.d/local-git-daemon 添加
start on startup
stop on shutdown
exec /usr/bin/git daemon \
--user=git --group=git \
--reuseaddr \
--base-path=/opt/git/ \
/opt/git/
respawn
出于安全考虑,要使用一个对仓库拥有只读权限的用户运行该守护进程。