如何更换git托管

发表于:2018-10-16 11:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:老鱼大哥    来源:51testing采编

  有时候会遇到需要更换代码托管平台,从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  #关联上游托管仓库并推送旧代码

    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号