Gitlab跨大版本升级代码迁移

背景:旧版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@”,这里的密码不能带类似@这种特殊字符(尝试过@和!都不行,可能有其他方法绕开)。

posted @ 2022-02-18 15:05  野生薄荷糖  阅读(784)  评论(0编辑  收藏  举报