6

我已经在我的 linux 服务器上设置了 gitolite,并将我的笔记本电脑添加到 gitolite-admin 存储库。我被迫格式化我的笔记本电脑(硬盘坏了),所以我需要想办法重新访问我的其他存储库 gitolite 控件。值得一提的是,如果有帮助的话,我在我的 linux 服务器上有 root 访问权限。我对 SSH/公钥等不是很精通,所以如果有人可以提供帮助,我将不胜感激。

4

2 回答 2

11

如果您安装了 2.0.3 或更高版本,则可以使用以下gl-admin-push命令从管理存储库的本地克隆推送:

请参阅gl-admin-push: bypassing gitolite 获取 gitolite-admin repo

  • su给你的 Gitolite 用户
  • cd /tmp && git clone ~/repositories/gitolite-admin.git
  • 用新的公钥替换旧的公钥keydir/,然后提交
  • ~/.gitolite/src/gl-admin-push推动它;这将更新用户.ssh/authorized_keys以集成您的新密钥

如果您使用的是 2.0.3 之前的版本,则可以使用以下gl-dont-panic命令替换密钥:

  • su给你的 Gitolite 用户
  • 将您的新公钥复制到/tmp/username.pub
    username.pub应该与您当前的文件名相同keydir/;您可以列出现有的keydir/内容

    GIT_DIR="$HOME"/repositories/gitolite-admin.git git ls-tree master:keydir
    
  • 运行cd /tmp && ~/.gitolite/src/gl-dont-panic username.pub以安装替换密钥

于 2011-08-12T05:35:58.280 回答
5

上面的答案很有帮助。但是对于 gitolite 3.04(可能更高版本)使用gitolite push而不是gl-admin-push

于 2013-04-16T10:53:17.897 回答