我曾在Ubuntu 16 VPS上运行GitLab-CE,但是由于一些nginx问题以及更一般的问题,最终导致我无法登录服务器上的GitLab。由于无论如何我都必须擦除服务器,所以我认为我只是备份/var/opt/gitlab/git-data/repositories/
文件夹,并希望在以后安装新的GitLab的情况下恢复最佳状态。
晚了。我现在在Ubuntu 18.04上安装了Omnibus版本的GitLab-EE。我将文件夹从/var/opt/gitlab/git-data/repositories/username/
从备份移到了新安装。这些是文件夹,每个文件夹分别名为reponame.git
和reponame.wiki.git
。我还正确设置了文件权限。
唯一明显不同的是:
用户git
属于在新服务器上进行的新存储库中的组git
,但是旧用户具有用户root
的组git
执行ls -al
时,新创建的存储库具有以下用于钩子的内容
hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks/
而旧版本有hooks.old.1528595819/
,其中只有一个有关钩子的自述文件,但没有帮助。
我在新的GitLab安装中恢复这些机会是什么?对于所有这些,我不能仅仅使hooks
成为/opt/gitlab/.../hooks/
的符号链接并更改所有者的组,因为这样做并没有做任何事情来使它们显示在Web界面上。>
这里最好的选择是什么?
答案 0 :(得分:0)
我已经制定了一个解决方案,该解决方案比我想要的要耗费更多时间,但是肯定可以将我所有的文件都带回来。这是我所做的,以防对日后的其他人有所帮助。很多时候,很多东西被丢弃而没有答案,如果您只是想找回文件,这可能会帮您。
sample.git
被放在名为sample
的文件夹中。git init
重新初始化存储库git reset --hard HEAD
git init
步骤只是一个猜测,但这正是需要的。
我仍然很想听听是否有一种更快的方法来批量更新服务器上的所有存储库,但是,可以代替这种方法。