問題: 在gitlab由於某些問題掛機,或無法再次啟動的情況下,如何將已有項目導出到新的gitlab服務器中
解決:gitlab有自己的備份命令和定時備份配置,但是如果既沒有定時備份,而備份命令在掛機的情況也無法執行,這是災難性的時刻,
有可能有的項目本地沒有了,大部分情況多人同時開發,合並代碼會是一個大問題,從git的原理出發,git會為每個項目在postgresql中生成一條記錄,然后根據這條記錄指向對應的文件夾,那么答案就找到了,
操作流程如下:
1.部署一個新的git服務器
2.在新的gitlab服務器上建相應的項目,注意項目的組和名字必須是一樣的,然后添加README,關於組是什么概念可以看圖片紅框,總之和老的gitlab服務名字必須一樣
3.關鍵的點來了,進入/var/opt/gitlab/git-data/repositories/ 這個路徑, 此時是不是很眼熟了,跟老的服務器上一模一樣,直接刪除掉/var/opt/gitlab/git-data/repositories 目錄下的所有文件,然后替換成老的服務器中該目錄下的所有文件
4.
這個命令比較關鍵,給文件賦予git訪問權限, 從gitlab頁面看,已經能看到這些項目了,已經成功一大半了
5.在新的gitlab上添加所有的開發人員,並給項目添加開發人員,如果是開發組就更快捷了,看個人喜好
6.從gitlab中拉取項目,此時應該會報ssh錯誤,你可以先用http方式拉取,至於怎么拉取就不做解釋了,到此一切OK