我需要允许匿名访问一些回购。我在git-daemon上阅读了一些使用git clone clone --bare
方法并使用git-daemon服务克隆存储库的how-tos和docs。
这很好用,通过aptitude安装它,并作为/ etc / srv / git-daemon中的服务快速运行。
我的问题是,一旦devel有更多提交,你如何更新和同步被用作公共存储库的克隆实例?
此外,这个repo似乎也是可写的(显而易见,但肯定不是一直想要的),是否有可能让git-daemon服务为只读?
答案 0 :(得分:0)
为了使所有人只读存储库,只为某些用户可写,最简单的方法是添加authorization layer gitolite。
您可以将其插入gitweb,或仅插入http(s)访问,就像我在此Apache configuration中一样,可以设置为需要身份验证。
因此,您可以保留当前的git-daemon,以进行只读访问,但您可以添加(经过身份验证的)https访问以进行写入,从而可以精确控制谁可以执行哪些回购(通过gitolite)。
您还可以向可写上游仓库添加post-receive
挂钩,以便将cd
挂钩到另一个只读仓库,并执行git fetch
#!/bin/bash
export GIT_DIR=/path/to/bare/read-only-repo.git/
cd $GIT_DIR
git fetch --all