2011-09-12 83 views
1

我们已经通过SSH使用私人git仓库一段时间了,这对我们来说工作得很好。现在,我们希望为部署代码提供只读版本,即允许远程用户检出部署代码,但无法推回到回购站。我如何自动保持两个裸git回购同步?

(这是为了让我们部署到多个生产服务器,而不需要从所有这些远程生产服务器设置为git的服务器的SSH访问权限。)

到目前为止,我已经能够克隆主从私人部分出到Web根目录和发布:

$ cd /path/to/web/root/git 
$ git clone --bare /repos/git/project-name project-name.git 
$ cd project-name.git 
$ touch git-daemon-export-ok 
$ git --bare update-server-info 
$ mv hooks/post-update.sample hooks/post-update 

...但是现在/path/to/web/root/git/project-name.git所产生的回购协议是注定,除非它被从主更新,漂到不相干,而我不会每天手动运行git fetch。我如何自动更新它?我应该定期通过cron脚本运行git fetch吗,还是在post commit commit进入?

回答

2

这就是钩子的用途,但如果它们都在同一台机器上,我个人只会使用符号链接。

+1

我曾尝试符号链接,但没有运气(通常是权限问题)。显然,我刚刚尝试过的模式 - 将回购网站放在web根目录下,然后在git目录中添加一个符号链接 - 这是我没有尝试的模式,而这显然是要走的路。谢谢。 – pjmorse