如何使用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合并
这个只需要在页面上进行操作,不同的页面操作不一样。但是大同小异