Git控制对存储库的访问

时间:2014-06-11 14:43:15

标签: git apache gitweb

我在Apache服务器上有一个git存储库。如何允许我的开发人员具有完全访问权限,即对存储库的读写访问权限。我正在使用Windows平台。

1 个答案:

答案 0 :(得分:0)

我的想法是使用 git-http-backend exe直接从httpd Apache配置文件调用git。
这是我在smart http protocol中提到的this answer的一部分。

Env GIT_PROJECT_ROOT C:/GIT/Apache/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAliasMatch \
    "(?x)^/(.*/(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))$" \
                    "C:/Program Files/git/libexec/git-core/git-http-backend.exe/$1"

该脚本(在任何Git发行版中)将能够通过http获取git查询并返回结果。

您可以在“Setting up Git Server on Windows With git-http-backend.exe

中找到完整的示例

对于更精细的访问级别控制,您可以在httpd.conf中添加authorization layer,例如 gitolite (gitolite会调用hit-http-后端,如果它授权git查询) 我在与LDAP (for the authentication part)的cunjunction中使用它,但您不必使用LDAP,只需确保您的Apache配置首先设置为对用户进行身份验证,以便让gitolite拥有一个用户ID来处理(允许或否认)。