因公司决策将代码仓库从 Gitlab 换成 Coding,在此记录一下迁移过程。
- 针对要迁移的 Gitlab 仓库提醒涉及的团队成员及时提交和推送要保留的本地分支,本次迁移只迁移 Gitlab 服务器上现存在分支、Tag、历史记录
- 将要迁移的 Gitlab 仓库进行归档,此时仓库为只读状态不能提交和推送
- Coding 中建立一个新的空仓库,不需要初始化
- Coding 个人设置中添加 SSH 公钥,建议和 Gitlab 中的个人公钥保持一致
- 执行以下命令克隆 Gitlab 仓库裸库到本地
git clone --bare git@gitlab.xxx.com:xxx-fe/xxx-webapp.git
( 以下皆以 xxx-fe/xxx-webapp 为例,实际操作中要换成真实的仓库 ) - 进入
xxx-webapp.git
目录,执行du -d 1 -h
查看仓库体积,Coding 对仓库体积大小有限制 - 检查仓库体积无问题后,执行
git push --mirror git@e.coding.net:yyy/tw/xxx-webapp.git
命令推送裸仓库至 Coding 建好的空仓库中 (地址 git@e.coding.net:yyy/tw/xxx-webapp.git 从建好的 Coding 仓库中获取) - 刷新 Coding 仓库,检查是否推送成功,检查分支、Tag、历史提交记录是否正常,并转移至相关分组
- 重新从 Coding 拉取代码或更改本地仓库 git 远程地址
- 酌情迁移 .gitlab-ci.yml 至 Jenkinsfile (注意 Jenkinsfile 和 Jenkins 手工配置只能留一个)
Coding 公钥拉取失败提示 Permission denied(publickey):https://help.coding.net/docs/repo/faq.html#permission-denied
Coding 的公钥配置拉取代码如果失败,按这个配置一下,说明 git 版本太新,默认不支持 RSA 密钥了,需要配置一下支持 RSA
Coding 不支持个人空间,自已有在 Gitlab 个人空间中有仓库的,自行备份处理
Coding 不支持代码片段,自已有在 Gitlab 中有代码片段的,自行备份处理
Gitlab 中有用的 issue 建议迁移到 Coding 中的任务
Gitlab 中有用的 wiki 建议迁移到 Coding 中的 wiki
有同时在搞公司项目在外面又有个人 github 项目的,切记不要误把公司代码提交到 github 上去,任何代码代码仓库(不管公司内部的还是外部的)里切记不要提交实际在用的密码密钥之类的敏感信息!!!