如何使用Git完成远端仓库的迁移

259 阅读1分钟

如何使用Git完成远端仓库的迁移

我们偶尔会有这样一个需求,就是迁移git的远端仓库,比如

  • 从内网的gitlab迁移到外网的gitee
  • 从外网的gitee迁移到内网的gitlab

如果操作不当,可能会丢失掉之前所有历史的提交记录。

事实上,操作并不复杂,只要在原来仓库的基础上关联新的仓库,就可以了

1.关联新的git仓库

git remote add gitlab http://gitlab.zj.myCompany.com/mock/mock-mock.git
命令部分含义
git remote add添加远程仓库,固定写法
gitlab新远程仓库在本地的别名(之后git push时,需要附加上),别名自己取的,不要叫(origin)
gitlab.zj.myCompany.com/mock/mock-m…新的远程仓库地址,写上你自己的新的远程仓库的地址即可

添加的新仓库可以使用下面命令来查看

git remote -v

2.切换分支

git checkout -b feature
命令部分含义
git checkout -b准备创建并切换分支
feature新的分支名,自己取的,最好能和远程仓库对应上去

为啥要切分支?

主要是我这边内网的master是保护分支,不允许直接推送,git push -f都不行。

所以要先切换到一个非保护分支,然后就可以推送了

3.强制推送

git push gitlab -f
命令部分含义
git push推送
gitlab之前自己的取的别名
-f强制化

4.在远端仓库进行merge合并

这个只需要在页面上进行操作,不同的页面操作不一样。但是大同小异