Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自动保持两个裸git回购同步?_Git_Automation - Fatal编程技术网

如何自动保持两个裸git回购同步?

如何自动保持两个裸git回购同步?,git,automation,Git,Automation,我们通过SSH使用私有git存储库已经有一段时间了,这对我们来说非常有效。现在,我们希望使只读版本可用于部署代码,即允许远程用户签出用于部署的代码,但不能推回到repo (这是为了让我们能够部署到多个生产服务器,而无需设置从所有这些远程生产服务器对git服务器的SSH访问。) 到目前为止,我已经能够将primary从private部分克隆到web根目录并发布它: $ cd /path/to/web/root/git $ git clone --bare /repos/git/project-na

我们通过SSH使用私有git存储库已经有一段时间了,这对我们来说非常有效。现在,我们希望使只读版本可用于部署代码,即允许远程用户签出用于部署的代码,但不能推回到repo

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

到目前为止,我已经能够将primary从private部分克隆到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
中生成的repo注定会变得无关紧要,除非它从主文件更新,我不会每天手动运行
git fetch
。如何自动更新它?我应该定期通过cron脚本运行
git fetch
,还是这就是提交后钩子的作用?

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

我以前尝试过符号链接,但运气不佳(通常是权限问题)。显然,我刚才尝试过的模式——将repo放在web根目录上,然后在git目录中添加一个符号链接——是我没有尝试过的模式,这显然是一种方法。谢谢