5

我接管了一个项目,以前的管理员没有提供任何帮助,没有文档,也没有移交……我正在尝试克隆 gitolite-admin 存储库,以便我可以将自己添加为用户。

问题是当我跑步时

git clone gitolite@repo1:gitolite-admin.git

我收到错误

R access for gitolite-admin DENIED to macbook
(Or there may be no repository at the given path. Did you spell it correctly?)
fatal: The remote end hung up unexpectedly

服务器的 conf/gitolit.conf 文件包含

repo    gitolite-admin
    RW+     =   macbook

我的存储库包含 gitolite-admin.git 等,我成功运行

git clone gitolite@repo1:wp_of_travel

当我跑

ssh gitolite@repo1 info

我收到了一些项目,但 gitolite-admin 没有在此处列出。

我的情况是绝望还是我错过了可以重建回购并再次克隆它的东西?

如果有帮助,我确实可以完全控制服务器...

任何关于此事的帮助或建议都非常受欢迎。谢谢

4

1 回答 1

4

当我跑

ssh gitolite@repo1 info

我收到了一些项目,但 gitolite-admin 没有在此处列出。

这是正常的:如果 macbook 没有在gitolite.confrepo 的那个项目中注册(不是您自己的 local gitolite.conf,而是当前存储在gitolite-admin.gitrepo 中的那个),您将不会看到它列出。

如果您可以访问服务器,则可以在gitolite-admin.git本地克隆(文件协议,此处没有 ssh),添加您的姓名(在您的公共 ssh 密钥之后),推回并运行gitolite setup(如果您使用的是 gitolite v3),以便gitolite 来更新~/.ssh/authorized_keys文件。


对于 gitolite V2,页面gl-admin-push: bypassing gitolite for the gitolite-admin repo很有帮助:

将 repo 克隆到某个安全位置并 cd 到它:

cd /tmp
git clone ~/repositories/gitolite-admin.git
cd gitolite-admin

对该克隆进行任何更改并提交。您可以添加新密钥、更改 conf 文件或任何需要修复的内容。如果这是修复某些可能导致您失去访问权限的配置问题的最简单方法,您甚至可以重置为较旧的提交(回退)。

完成后git push <push arguments>,请使用此程序代替 。
例如,代替git push -f,使用gl-admin-push -f

OP edwardgd在评论中确认:

看起来以前的系统管理员对 root 以及用户 gitolite 进行了失败的安装,这就是我感到困惑的原因。
作为参考,adminpush一旦您知道在哪里应用该方法,该方法就非常简单。

于 2012-11-29T17:53:44.540 回答