用gitlist推送私有gitserver

时间:2013-12-26 00:19:55

标签: git apache gitlist

我在Debian系统上设置了一个git服务器,并安装了gitlist来查看存储库。 一切正常,我可以看到我的存储库并克隆并通过HTTP推送它们。

我的问题是推送存储库的URL与gitlist URL不同。 现在我可以通过http://<IP>/gitlist/和像http://<IP>/gitlist/example.git

这样的存储库访问gitlist

当我想克隆/拉/推它们时我必须使用http://<IP>/git/example.git(在apache中配置)

SetEnv GIT_PROJECT_ROOT /home/git/repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git /usr/lib/git-core/git-http-backend

但是我已经看到了运行gitlist的系统,您只需从浏览器中复制URL并将其用于git。

所以我的问题是,如何设置apache和gitlist,我可以使用浏览器中的URL来克隆存储库等等。 (git clone http://<IP>/gitlist/example.git

1 个答案:

答案 0 :(得分:2)

您必须更改Apache配置。

重写ScriptAlias没有触及gitlist,但git命令可以访问他们需要的数据(如info/refs

这是我的git.conf(在/etc/apache/conf.d /中的debian下):

SetEnv GIT_PROJECT_ROOT /home/git/repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch /gitlist/(.*/(HEAD|info/refs|objects/(info/[^/]+|[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(pack|idx))|git-(upload|receive)-pack)) /usr/lib/git-core/git-http-backend/$1

(注意:你没有使用ScriptAlias而是使用ScriptAliasMatch来使用正则表达式)