【问题标题】:Gitolite: can not push to repositoryGitolite:无法推送到存储库
【发布时间】:2014-12-20 12:09:55
【问题描述】:

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

我使用打包方法 (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

如果我对克隆的(空)存储库进行更改并尝试推送,我会得到 ​​p>

远程:ENV GL_RC 未设置远程:BEGIN 失败--编译在 钩子/更新第 20 行。远程:错误:钩子拒绝更新 裁判/负责人/大师

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

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

【问题讨论】:

    标签: git ssh admin gitolite


    【解决方案1】:

    我建议使用客户端方法安装 gitolite。对我来说,它解决了这个确切的问题。

    【讨论】:

    • 我这样做了,但我陷入了同样的境地。
    • 嗯。你在 IRC 的#git 频道上联系过 Sitaram 吗?他和其他人一样非常乐于助人..
    【解决方案2】:

    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。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2021-11-27
      • 2018-06-24
      • 2013-07-04
      相关资源
      最近更新 更多