如何更换git托管

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

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

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

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

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

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

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

1500948064_7921.png

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

新仓库地址:

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

 1500948145_3035.png

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

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

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

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

1500948193_6115.png

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

1500948209_4033.png

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

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

git clone git@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 origin git@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  #关联上游托管仓库并推送旧代码

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。