SVN如何迁移到Git?

简介:

之前一直是用svn做代码管理,而华为软件开发云是使用目前国外比较流行的Git进行代码版本控制.在网上查询了迁移方式,发现Git本身有命令可以直接克隆SVN的代码库,而且迁移后能保持原SVN的提交记录.以下是总结的SVN代码库向华为软件开发云迁移的过程.

主要步骤

1.通过git svn clone命令将SVN代码库克隆至本地

2.华为开发云创建代码仓库,获取Git仓库地址

3.本地新建test分支,提交后合并至master分支.开发云代码库中根据引导完成代码合并. (新建分支合并的原因后面会讲.)

准备条件

1.准备要迁移的svn代码库地址;本地安装Git

2.登录华为软件开发云(https://www.hwclouds.com/devcloud/),并已创建好项目.

完整迁移流程

1.通过git svn clone命令将SVN代码库克隆至本地

$ git svn clonehttps://SVN服务器地址/ibeisi.iPMSystem/ --no-metadata --trunk=trunk

#查看SVN提交记录

$ cd ibeisi.iPMSystem/

$ git log

2.华为软件开发云创建代码仓库,获取Git仓库地址

代码仓库创建好之后,需根据在线帮助,添加SSH秘钥,步骤很详细,此处就不作赘述.

SSH秘钥主要是本地与华为软件开发云代码库的一个管理,无需每次通过用户名和密码验证

打开代码仓库,拷贝代码仓库地址

3.根据步骤2中获取到的代码仓库地址,本地添加远程仓库地址

$ git remote add origin

git@codehub.devcloud.hwclouds.com:3bf9c1ed148142d880d759e80100b923/iPMSystem.git

#拉取远程分支

$ git pull


可以看到代码仓库中默认已建好主分支,如果无需保留SVN原提交记录,可以直接将代码通过master分支进行提交(commit)和推送(push);但我想保留原提交记录,所以下面以新建分支合并到master的方式进行代码上传。

4.本地新建分支test,并发起与master分支合并请求

$ git branch test

#checkout命令会让当前切换到test分支,及后续操作都只影响test分支

$ git checkout test

#新建空文件,原因是若没有更改git不会进行push操作

$ vi test.txt

#空文件添加至分支中

$ git add .

#git的commit命令只是在本地提交,并不会上传至代码库.

$ git commit -m "上传代码新建缓存分支"

#通过以下push命令可以发起test与master分支合并请求.

$ git push--set-upstream origin test

5.刷新代码库页面(或重新打开代码库),可以看到合并请求的处理指引,按照指引操作即可完成合并.

可以看到原svn代码库的提交记录都被完整保存了下来.

至此, svn代码库可以说完整地迁移到了华为软件开发云的CodeHub中。







      本文转自zsdnr  51CTO博客,原文链接:http://blog.51cto.com/12942149/1928938,如需转载请自行联系原作者





相关文章
|
8月前
|
程序员 Linux 开发工具
Git基本概念、工作流程及与SVN的对比
Git基本概念、工作流程及与SVN的对比
136 0
|
8月前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
96 0
|
5月前
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
3月前
|
存储 开发工具 git
Git和SVN有什么区别?
综上所述,选择Git还是SVN取决于项目的具体需求、团队规模以及工作习惯。Git因其高级特性和灵活性,成为了现代软件开发中更受欢迎的选择,而SVN在某些特定场景下仍保有一席之地。开发者应当根据实际情况,权衡两者之间的优劣,作出最适合项目的选择。
95 4
|
5月前
|
存储 开发工具 数据安全/隐私保护
Git 与 SVN:版本控制领域的双星对比
【8月更文挑战第27天】
196 6
|
5月前
|
Kubernetes jenkins 持续交付
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
203 0
|
7月前
|
开发工具 git
git项目迁移
git项目迁移
34 2
|
7月前
|
中间件 Java 生物认证
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
|
8月前
|
开发工具 git
将本地项目上传到svn服务端和git
将本地项目上传到svn服务端和git
236 0
|
8月前
|
网络安全 开发工具 数据安全/隐私保护
Git - 记一次完整的新旧Gitlab迁移
Git - 记一次完整的新旧Gitlab迁移
458 0