![](/img/trans.png)
[英]Server-side custom git merge driver on GitHub/Azure Repos
[英]Recovering GitLab repos from the server-side directories
我曾在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/
的符號鏈接並更改所有者的組,因為這樣做並沒有做任何事情來使這些hooks
顯示在Web界面上。
我最好的選擇是什么?
我已經設計出了一個解決方案,該解決方案比我想要的要耗費更多的時間,但是肯定可以將我所有的文件找回來。 這是我所做的,以防對日后的其他人有所幫助。 很多時候,很多東西被丟棄而沒有答案,如果您只是想找回文件,這可能會幫您。
sample.git
被放在名為sample
的文件夾中。 git init
重新初始化git init
git reset --hard HEAD
在本地還原文件 git init
步驟只是一個猜測,但這正是需要的。
我仍然很想聽聽是否有一種更快的方法來批量更新服務器上的所有存儲庫,但取而代之的是,這可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.