Gitolite 克隆无法按预期工作

inv*_*tax 6 debian git repository gitolite

我正在运行 Debian 系统,最近使用 DEB 包安装了 gitolite。

这是我的问题:

我试图克隆 gitolite-admin.git 存储库(用于为您希望 gitolite 为您管理的所有存储库配置 gitolite 安装)。

我的第一次尝试正是说明如何说明:

git clone gitolite@server:gitolite-admin
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

注意:如果我用 gitolite-admin.git 替换 gitolite-admin 会发生同样的事情
,当我执行以下操作时:

git clone gitolite@server:~/repositories/gitolite-admin.git
Run Code Online (Sandbox Code Playgroud)

这一行成功地将存储库克隆到我的本地工作站。
现在,我可以将额外的文本添加到文件路径中,但我被告知这是不正确的文档。

以下链接(http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html)指出“在 git clone 中的存储库名称开头添加存储库/”是一个常见错误/错误。它还指出“实际上 gitolite 在内部预先添加了 $REPO_BASE,所以你不应该也做同样的事情!”

我的 .gitolite.rc 文件包含 $REPO_BASE 的以下行:

[Located in /home/gitolite/.gitolite.rc]
$REPO_BASE="repositories";
Run Code Online (Sandbox Code Playgroud)

我的问题是,我的配置有什么问题,导致 $REPO_BASE 没有在我的 git clone 前面加上?

如果您需要任何进一步的信息,请发表评论说明您需要什么信息,我将很乐意提供帮助。

其他注意事项:

  • git 版本:1.7.2.3
  • gitolite 版本:1.5.4-2~bp(这是来自 lenny-backports,因为我使用的是 Debian Lenny 而 gitolite 不是 Lenny 的标准配置)
  • Debian 的安装会创建用户“gitolite”来管理 gitolite 存储库。

Chr*_*sen 6

能够访问gitolite@server:~/repositories/gitolite-admin.git, but notgitolite@server:gitolite-admin表示您不会“通过” Gitolite,而只是使用基于 SSH 的普通访问权限来访问 gitolite 用户。

如果ssh gitolite@server echo normal accessyields normal access,那么您使用的密钥不限于通过 Gitolite。如果您正在浏览 Gitolite,您会看到类似bad command: echo normal access.

如果您有一个用于通过 SSH 连接到 gitolite 用户本身的密钥,并且您尝试使用相同的密钥作为 Gitolite 用户进行身份验证,则可能会发生这种情况。“正常访问”键将出现在 gitolite 中,.ssh/authorized_keys没有任何特殊前缀。配置为通过 Gitolite 的密钥行将以command="/path/to/gl-auth-command gitolite-username",….

如果您需要对 gitolite 用户的基于 SSH 的正常访问和基于 Gitolite 的访问,那么您应该为这些目的设置单独的密钥,以便您可以指定要与文件中的IdentityFile选项一起使用的密钥.ssh/configIdentitiesOnly如果您发现ssh正在使用“错误”的密钥,因为您已经将它加载到ssh-agent 中)。

例如:

使用您的“默认”密钥之一(ssh的默认密钥之一(例如~/.ssh/id_rsa)或您通常在ssh-agent 中加载的某个密钥)访问 Gitolite(即您在 active 中有公钥keydir/your-gitolite-user-name.pub)。

生成~/.ssh/gitolite-user用于直接登录 gitolite 用户。使用ssh -i ~/.ssh/gitolite-user gitolite@server登录。或者,将自定义条目添加到~/.ssh/config

Host gitolite-user
              User gitolite
          HostName server
      IdentityFile ~/.ssh/gitolite-user
    IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)

所以你可以ssh gitolite-user登录。