Gitolite:无法推送到存储库

时间:2012-01-09 15:21:42

标签: git ssh admin gitolite

我遇到的情况是我有一个从git存储库克隆的本地源代码树,我正试图将其推送到一个新的远程位置。

我使用package方法(deb)在服务器上安装了gitolite。我跟着Wiki instructions,以成功的git clone gitolite@localhost:gitolite-admin结束。然后我添加了新的存储库和我的公钥。我可以在我的机器(客户端)上克隆这个存储库,但我无法进入它。 SSH troubleshooting document恰当地描述了my scenario

  

考虑git @ server:repositories / reponame.git。克隆操作   将工作 - 你正在使用完整的Unix路径,(假设默认   $ REPO_BASE设置),所以shell找到你说的repo   将会。然而,当你推动时,gitolite的更新钩子开始了,并且   无法运行,因为它期望的一些环境变量   不存在

所以,我可以用

克隆

git clone gitolite@server.com:repositories/reponame.git

但不是

git clone gitolite@server.com:reponame.git(我得到fatal: 'reponame.git' does not appear to be a git repository

如果我对克隆(空)存储库进行更改并尝试推送,我会

  

remote:ENV GL_RC未设置远程:BEGIN失败 - 编译中止   hooks / update line 20. remote:error:hook拒绝更新   参考文献/头/主

所以,这似乎与前缀相关 - 但是,正如我所提到的,我不能在路径中不包含repositories/说明符的情况下克隆存储库。

这是“绕过gitolite”的意思吗?我该如何纠正这种情况?最后,我想将整个预先存在的源树推送到新的远程(我已将新服务器添加为.git/config中的远程服务器),并保留历史记录。

2 个答案:

答案 0 :(得分:0)

我建议使用客户端方法安装gitolite。对我而言,它解决了这个问题。

答案 1 :(得分:0)

  

git clone gitolite@server.com:reponame.git(我致命:   ' reponame.git'似乎不是一个git存储库)

reponame.git的路径不对。 您应该添加前缀repositories /

git clone gitolite@server.com:repositories/reponame.git 

表示reponame.git位于/home/gitolite/repositories/reponame.git。