1

我需要允许匿名访问一些存储库。我阅读了一些关于 git-daemon 的操作指南和文档,它们使用该git clone clone --bare方法并使用 git-daemon 为克隆的 repo 提供服务。这工作正常,通过 aptitude 安装它,它作为 /etc/srv/git-daemon 中的服务运行愉快。

我的问题是,一旦 devel 有更多提交,您如何更新和同步用作公共存储库的克隆实例?

此外,这个 repo 似乎也是可写的(很明显,但肯定并不总是想要),是否可以让 git-daemon 以只读方式服务?

4

1 回答 1

0

要使存储库对所有人只读,仅对某些用户可写,最简单的方法是添加像gitolite这样的授权层

您可以将其插入 gitweb,或者只是插入 http(s) 访问,就像我在这个Apache 配置中所做的那样,可以设置为需要身份验证。

因此,您可以保留当前的 ​​git-daemon 以进行只读访问,但您可以添加(经过身份验证的)https 访问以用于写入目的,从而允许您精确控制谁可以对哪些 repos 执行什么操作(通过 gitolite)。

您还可以post-receive在可写上游仓库中添加一个挂钩,以便将该挂钩连接cd到另一个只读仓库,然后执行git fetch.

#!/bin/bash
export GIT_DIR=/path/to/bare/read-only-repo.git/
cd $GIT_DIR
git fetch --all
于 2013-03-07T07:01:37.143 回答