前言
本人所在单位由于历史原因,目前开发团队搭建了两个 Gitlab 代码托管平台,且处于两个物理隔离的网段...
近期领导提出要统一 Gitlab ,目前剩余的团队需做迁移...
Gitlab 上的项目代码同样需要转到新的 Gitlab 上,且需保持提交记录、分支、tag等完整
操作步骤
准备工作
假设原 Gitlab 地址为180.XX.XX.XX
新的 Gitlab 地址为172.XX.XX.XX
这里以在180.XX.XX.XX 上的一个 ratel 项目为例说明
未迁移前,项目概况如下:
第一步:原仓库克隆裸版本库
在 Git bash 命令行输入以下命令
git clone --bare http://180.XX.XX.XX/java/ratel.git # 原 Gitlab 仓库地址
这个命令就是把项目导出成一个裸镜像
第二步:在新的 Gitlab 上创建项目
此处略去
第三步:推送镜像到新仓库
在 Git bash 命令行输入以下命令
git push --mirror http://172.XX.XX.XX/zy/ratel.git # 新仓库地址
在 Gitlab 项目详情页面刷新,可看到分钟、tag 及相关 commit 记录以及全部同步过来了
第四步:更新本地仓库中远程仓库地址
这个时候我们的电脑也一般会切换网段,需要在本地的工程目录下更新远程仓库地址,在 Git Bash 端进入到项目工程目录,输入以下命
令
git remote set-url origin http://172.XX.XX.XX/zy/ratel.git # 新仓库地址
说明
这种方式仅仅适合少量的项目,如果是整个仓库货较大工程迁移,建议还是后台拷贝数据目录的方式