SVN如何迁移到Git?

最近在使用华为软件开发云进行开发项目管理,目前华为软件开发云支持500M的免费项目空间,而且还可以在线编译和构建,不用担心开发环境和生产环境的不同,很好的体现了DevOps的开发理念.

之前一直是用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

[email protected]: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中。

时间: 2024-09-29 18:24:59

SVN如何迁移到Git?的相关文章

SVN项目迁移到Git上(并带有完整的提交记录)

公司需求:早期的一些项目使用的是SVN,现在想要更换为Git,需要代码迁移并且能在Git上看到之前在SVN中的项目的提交记录,公司没有使用gitlab,代码都push在公司的服务器上,用的是TortoiseGit来管理的. 第一步:公司服务器系统(centos6.8),安装git yum -y install git 第二步:创建git用户: useradd git #创建名称为git的用户 passwd git #git用户对应的密码也为git 第三步:创建git仓库: mkdir /home

svn 版本迁移到 git 仓库

1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser.txt user.txt 文件格式如下 xiaolailong = Loissiau<[email protected]> 如果中途报有svn提交者未映射,则 补上 ,再进入git仓库目录,执行 git svn fetch -Auser.txt -Afilename 相当于 --author-f

坑死人不偿命,svn 迁移到 git

用git的人非常鄙视用svn的.因为要不断的开分支.而且也没有本地的分支这个概念. 但是git 作为一项技术,是一定可以被svn替代的.当然替代的方法是否繁琐另当别论,但一定是能被替代.svn同样也能被git替代.大概所有的技术都是一样.都能相互替代,只是你要为替代本身花费多长时间. git作为一种同步工具好用吗?其实真不好用.我梦想的工具一定是可以帮我自动完成merge过程的,永远不用开分支,永远不用告诉我链表头在哪里,以及怎么reset, 什么时候rebase, 什么时候打tag. 一个工具

SVN迁移到Git的过程(+ 一些技巧)

SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问. 阅读本篇文章,请先有一些Git和SVN的使用经验(又是经验,经验到底是什么?我都不知道). 第一部分   今天的实验对象是,把 http://code.g

svn迁移至git

svn 版本库的迁移,只要svn 库为标准目录(trunk.branches.tags)按照git官方文档基本都可以完成. 这里说说我所迁移的非标准目录结构的svn 库 svn 库里有part1目录,part1目录下又分为:code.UI等等,对于这种非标准目录结构,主干就是part1,没有分支,没有标签. 而code下面又分为android.ios目录,目录内才分trunk.tags.branch,这种目录层级结构-- 对于以上非标准目录结构,我采用的是先git svn到本地,并提交到git仓

svn迁移到git

最近需要将项目从svn迁移到git,至于原因请忽略,至于svn与git区别优劣请自行百度.一共有两种方式可行: 第一种方式较为常见,但是会丢失之前svn版本提交记录,就是将svn checkout到本地然后上传到git上 详情参见:http://blog.csdn.net/hanhailong726188/article/details/46738929 第二种方式较为复杂,但是可以保留之前svn版本提交记录,执行命令如下: git svn clone https://172.16.0.241:

SVN迁移到Git的过程(+ 一些技巧

关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文章,请先有一些Git和SVN的使用经验(又是经验,经验到底是什么?我都不知道).  第一部分 今天的实验对象是,把http://code.google.com/p/jdbcdslog-exp/ 这个使用SVN管理的project迁移到Git上面,Git托管网站选择github.SVN迁移到Git,当

svn 代码导入到 git 操作指引

针对  svn 代码导入到 git 操作指引 背景说明 需要导到 git 的代码在 svn 上有 trunk 和 branch 两条线.导入到 git 时 ,我们采用的方案是 将 trunk 上的代码作为 master ,将 branch 上的代码作为 develop 实例说明,本文档基于 iOS 代码迁移实例 ,操作时注意替换相应的地址 本文主线仓库(trunk) 地址:svn://192.168.230.119/kds/code/mobilestock/client/apple/trunk/

Windows下Svn服务器迁移至linux

Svn windows迁移至linux 需求:svn服务器从windows系统无缝迁移至linux系统中 实施: 一:准备工作 1,linux服务器一台 2,原svn-windows服务器安装代码及配置文件一份. 二:步骤 01:windows服务器操作 如图为windows svn 服务器图例 查找他的目录地址为:D:\Repositories 因为只有一个项目故进入此项目里找到需要的文件 注释:  conf  为用户账户及密码配置文件 Dav   为web认证文件 Db   为数据文件 Ho