如何恢复git存储库

时间:2018-08-02 07:45:40

标签: git gitlab gitolite

以某种方式我的本地git服务器停止工作。每当我尝试克隆/推动/拉动时出现以下错误。

$ git pull origin
FATAL: parse './conf/gitolite.conf-compiled.pm' failed: No such file or directory
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

但是所需的gitolite.conf-compiled.pm文件存在

/home/git/.gitolite/conf/gitolite.conf
/home/git/.gitolite/conf/gitolite.conf-compiled.pm
/home/git/.gitolite/conf/rule_info

因此,现在的问题是我如何获取所有存储库代码。当我导航到存储库之一并且目录结构如下所示

root@INLT-TRE0012:/home/git/repositories/cl.git# ls
branches  config  description  gl-conf  gl-slave-tregit1.status  HEAD  hooks  info  objects  refs

2 个答案:

答案 0 :(得分:1)

检查您的Gitolite版本。

This thread指向commit 35e0b2a

  

如果“ perl -V”的输出未以最后一个“ .”结尾   行,您的perl是ahead of current released perl

     

我刚刚推送了一个更新(提交35e0b2a),该更新应该可以修复它。

     

为perl 5.26做准备,从.中删除“ @inc

     

有人在irc上发现debian已经实现了它,所以gitolite失败了。

     

此修复程序甚至对于较旧的perls也是有用的。

答案 1 :(得分:0)

  

因此,现在的问题是如何获取所有存储库代码。当我导航到存储库之一并且目录结构如下所示时:

root@INLT-TRE0012:/home/git/repositories/cl.git# ls
branches  config  description  gl-conf  gl-slave-tregit1.status  HEAD

这是“裸克隆”。它只是Git仓库/历史记录,没有检出文件。在普通克隆中,这些文件位于.git目录中。裸克隆只能推入和拉出。

您可以从该目录中获取带有已检出文件的普通克隆,就像从URL中一样。

git clone /home/git/repositories/cl.git