GitLab仓库迁移

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 GitLab仓库迁移,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

概述

背景:由于服务器更新,需要把部署在A服务器的GitLab仓库迁移到B服务器上面。

实战

GitLab仓库地址从http://192.168.20.149:8090/迁移到http://192.168.0.149:8090/。背景知识:项目信息在.git/config文件有所显示。先查看一下原始.git/config文件:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = http://192.168.20.149:8090/zhsh/file-center.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[branch "dev"]
	remote = origin
	merge = refs/heads/dev

首先将原来的origin重命名一下:
git remote rename origin origin1

再指定需要迁移到的目标地址:
git remote add origin http://192.168.0.149:8090/zhsh/file-center.git

上传到新服务器:
git push origin --all

这一步,需要先在GitLab Web端创建一下Group,否则报错:

libpng warning: iCCP: cHRM chunk does not match sRGB
remote: The project you were looking for could not be found.
fatal: repository 'http://192.168.0.149:8090/zhsh/file-center.git/' not found

git push origin --all重试,成功。去GitLab Web端看一下项目信息:
在这里插入图片描述
commit提交记录都有保留,目的达到。

再来看看.git/config文件,已经更新为:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin1"]
	url = http://192.168.20.149:8090/zhsh/file-center.git
	fetch = +refs/heads/*:refs/remotes/origin1/*
[branch "master"]
	remote = origin1
	merge = refs/heads/master
[branch "dev"]
	remote = origin1
	merge = refs/heads/dev
[remote "origin"]
	url = http://192.168.0.149:8090/zhsh/file-center.git
	fetch = +refs/heads/*:refs/remotes/origin/*

进阶

删除无用的origin

上面那个.git/config文件,可见该项目有两个远程origin,猜测以后在push代码时,需要指定push到哪个服务器,验证:
在这里插入图片描述
光标一直在闪烁,提示选择一个远程origin。

如果旧的origin,即上面重命名的origin1不再需要,可以直接修改.git/config文件,删除origin1相关信息。这样就可以避免选择origin。

仓库迁移操作简化

故而,如果我们的仓库里面的项目很多的情况下,依次执行上述3条命令,简直就是体力活。

故而直接打开本地磁盘的项目文件夹,依次修改全部项目的.git隐藏目录下面的config文件,然后执行命令git push origin --all

Git Bash操作示意图(下图Everything up-to-date是因为我之前已经操作过):
在这里插入图片描述

借助于IDEA进一步简化操作

首先依次点击VCS—Git—Remotes,打开如下操作框:
在这里插入图片描述
看右侧的滑动条,需要迁移的项目太多。这里一条条修改URL地址。

修改之后,将代码push到新的远程仓库。

此处,几经尝试,貌似没有更好的方法:将每个Repository都加一点更改
在这里插入图片描述
注:上面截图里面的commit 面板在较新版本的IDEA才有,貌似是2020.1.4。

然后一次性push全部代码:
在这里插入图片描述

使用脚本

一遍GitLab仓库迁移工作是运维在做,运维肯定是使用脚本来解决问题。

  1. 修改IP:
    find 'D:\test' -type f -name "config" -exec sed -i 's/192.168.20.149/192.168.0.149/g' "{}" +;
  2. 推送代码:

参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142218.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!