背景:舊版Gitlab存在安全漏洞,需要升級到安全版本,由於在用版本較老,需要跨大版本進行升級,本章記錄了升級后代碼遷移踩過的一些坑。
1. 繞開公司網絡限制
Gitlab安裝有兩種途徑,比較通用的是在服務器上直接下載 (代碼引用自官網:https://about.gitlab.cn/install/ ):
wget https://omnibus.gitlab.cn/el/7/gitlab-jh-14.7.2-jh.0.el7.x86_64.rpm
由於這次版本升級需求比較急,而公司網絡防火牆開通周期不明,遂找了第二種方式:
登錄Gitlab網站下載離線安裝包:https://packages.gitlab.com/gitlab,選擇合適的版本,傳到服務器上進行離線安裝。
2. 代碼倉庫遷移
跨大版本的代碼倉庫遷移一般是先在新服務器上安裝老版本,同版本進行倉庫遷移,再對新服務器上的服務進行升級。而本次遷移由於硬件條件限制,無法實現這種方式的遷移,所以只能手動。
這里遇到一個比較大的而且還沒有修復的坑,通過url導入時鏈接不識別,於是采用的下面方法,借本地庫實現單項目的遷移。
- 在本地創建空文件夾,打開文件夾,右鍵選擇Git bash here(提前安裝了git)
- 從老代碼庫clone代碼:
git clone --bare http://old_address/group/project_name.git
- 上傳到新代碼庫:
cd project_name.git
git push --mirror https://username:password@new_address/group/project_name.git
小白踩坑:
上述方法是一個大佬給的,試了半天一直報錯,后面才知道新地址和對應項目是命令執行時自動創建的,我新建了一個項目push,這個項目的default分支受保護,無法push成功。
另外一個坑:對於非public的項目,需要加“username:password@”,這里的密碼不能帶類似@這種特殊字符(嘗試過@和!都不行,可能有其他方法繞開)。