我有一个使用 git 和 gitolite 的系统设置。一切正常,除了我希望我的结构是这样的:
本地环境->开发服务器->生产服务器
我在开发服务器上设置了一个 repo 协议(protocol),它已成功克隆到本地环境。现在,我需要的是开发服务器上的本地文件系统工作副本,但我不确定如何使用 gitolite 执行此操作。
git clone /home/gitolote/repositories/myrepo.git
工作正常,直到我尝试推/pull ,此时我得到:
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
关于如何使用 gitolite 执行此操作的任何想法?
最佳答案
您正在使用 local protocol对于您的克隆,这意味着您完全绕过了 gitolite(gitolite 脚本通过 ssh forced command 调用)。
你应该在你的开发服务器上制作第二个克隆,使用 gitolite 兼容的地址,如:
git clone git@gitoliteserver:myrepo.git
第二个 repo 将能够向/从 gitolite 服务器推送/pull ,同时在您之后的开发服务器上提供“本地文件系统工作副本”。
关于Apache DocumentRoot 的 Gitolite 本地工作副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5852676/