如何更换git托管
2017-07-26 09:08
169 查看
有时候会遇到需要更换代码托管平台,从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 #在本地
96a3
代码根目录文件夹下初始化仓库
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、从旧的托管仓库中克隆一个裸版本库。
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 #在本地
96a3
代码根目录文件夹下初始化仓库
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 #关联上游托管仓库并推送旧代码
相关文章推荐
- 准备更换git托管,如何迁移原git仓库
- 如何更换git托管
- 如何更换git托管
- 准备更换git托管,如何迁移原git仓库
- 如何导入外部Git仓库到中国源代码托管平台(Git@OSC)
- 如何将一个已存在的目录转换为一个 GIT 项目并托管到 GITHUB 仓库
- git如何更换远程地址
- git如何解决冲突(代码托管在coding)
- 如何利用单台服务器实现10万多个Git仓库托管
- 如何利用单台服务器实现10万多个Git仓库托管
- 如何使用网盘托管git项目
- git仓库地址更换域名地址,即更换git托管
- 如何使用Github DeskTop客户端以及简单的git指令托管代码到github
- 教你如何使用免费的私人代码托管(bitbucket) 和 常用git指令
- 初识Git,如何利用Git将代码托管到GitHub上
- android开发,如何使用git托管代码,如何在android studio上使用git管理代码
- 如何将项目同时托管到 Git@OSC 和 GitHub
- Android开发初级00_1如何在GIT上托管自己的代码的知识点
- 如何将项目同时托管到 Git@OSC 和 Github
- 技术公司团队如何使用git代码托管工具