有时候会遇到需要更换代码托管平台,从github,gitlab或者Bitbucket迁移到其它平台,过程中可能遇到不少问题,本文从是否保留历史提交记录两种需求出发,介绍一下基于git托管平台的迁移方法。

一、要求保留所有的提交记录的迁移方法

1、从旧的托管仓库中克隆一个裸版本库。

git clone –bare git://github.com/yourname/src_project.git

--bare:克隆一个裸版本库。

裸版本库的名字一般用原来的仓库名加上.git后缀,它不包含工作区,直接就是版本库的内容,包含的文件如下图所示,和正常版本库中.git文件夹的内容差不多。

2、到新的Git服务器上创建一个新项目,比如华为软件开发云配置管理服务。

新仓库地址:

git@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

3、将本地裸版本以镜像的方式推送到华为软件开发云仓库中。

git push –mirrorgit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

--mirror指定refs/下的所有文件镜像的推送到远程仓库,而不是命名每个ref一一推送。本地更新的refs将被强制更新到远端仓库,本地删除的refs也将强制从远端仓库删除。

因为本地和远端仓库是两个不同的origin,所以如果不选择镜像推送,会产生如下错误:

提示:华为软件开发云默认对master分支开启分支保护,因此推送之前要解除分支保护。

4、删除本地裸版本仓库,src_project.git文件夹。

5、从新的托管服务器上克隆一份代码到本地。

git clonegit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

二、无需保留提交记录的迁移方法

1、从旧的托管仓库中下载一套代码。仅仅是代码,没有git版本管理相关内容。

2、到新的Git服务器上创建一个新项目。

新仓库地址:

git@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

3、git init  #在本地代码根目录文件夹下初始化仓库

4、git remote add origingit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

5、git pull origin master –rebase  #从新托管仓库上拉去已存在的内容

6、git add .

7、git commit

8、git push --set-upstream origin master  #关联上游托管仓库并推送旧代码

最新文章

  1. 完全删除TFS2013上的项目
  2. .NET 程序集Assembly使用
  3. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
  4. linux 下安装安装rz/sz命令
  5. CodeForces 546B-Soldier and Badges
  6. xmlspy注册后打开报错的解决办法
  7. MySQL行列转换
  8. Markdown 代码测试
  9. HTML5基础篇章1
  10. Swift下多个Storyboard的项目结构
  11. pytorch visdom可视化工具学习—1—详细使用-1—基本使用函数
  12. Installing TensorFlow on Ubuntu or Windows
  13. js怎么样根据select的name取到值
  14. opencv-python教程学习系列1-安装库
  15. php 的多进程实践
  16. Nios ii调试问题集
  17. monkey测试小记
  18. AOP的最佳注入方式——MSIL注入
  19. vue中全局引入bootstrap.css
  20. JS获取移动端系统信息(操作系统、操作系统版本、横竖屏状态、设备类型、网络状态、生成浏览器指纹)

热门文章

  1. js获取网页请求类型是http还是https
  2. angularjs应用prerender.io 搜索引擎优化实践
  3. 在64位Ubuntu系统上安装32位程序包
  4. [0] DDD领域驱动设计(三) 之 聚合(根)、实体、值对象
  5. BOM API
  6. ecshop邮件订阅按“订阅”没反应
  7. 伞兵(Paratroopers)
  8. MySql三大范式与数据库设计和表创建常用语句
  9. Tomcat网页加载速度过慢的解决方法
  10. 远程连接mysql 授权方法详解