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