SVN迁移至Git,保留commit提交记录

一、背景

       随着项目越来越大,原有SVN已经很难支撑现有工程(集中式管理,服务器压力大,分支主干切换麻烦)。所以,决定将SVN切换成Git(分布式开发,快照式数据,速度快,主干分支切换方便)。现将SVN项目迁移至Git过程分享出来,希望能够对大家在操作迁移时提供帮助。

二、准备

      1.git安装(此处不做说明)

      2.git账号配置

      任意磁盘目录->鼠标右键->Git Bash Here  进入git命令行,

      输入如下命令:

      git config --global user.name "XXX"

      git config --global user.email "XXX@mail.com"

      第一条设置gitlab下注册的用户名,第二条设置gitlab下注册的邮箱

      查看配置:

      git config --list

     3.svn账号与git账号映射,userinfo.txt:   (注:svn账号3在svn中有记录,但无git账号,提交记录中涉及到的svn账号需要全部列举出来,否则会报错。提交记录可以选择指定记录到最新记录,下面会有说明)

三、导出SVN项目至本地

1.在存放userinfo.txt的同级目录下新建一个文件夹

2.鼠标右键->Git Bash Here  进入git命令行:

git svn clone -r 282506:HEAD svnurl --no-metadata --authors-file=userinfo.txt randomfree

注:此处的 -r 282506:HEAD 代表从svn的282506版本到最新版本的提交记录,避免从第一个版本拉取数据量过大,操作耗时高。svnurl是你的svn项目地址。如果需要拉取所有记录,可去除 -r 282506:HEAD 

四、关联git远程仓库

导入成功后,输入如下命令:

cd randomfree

git remote add origin giturl

注:giturl是你的git项目地址

查看关联情况:

git remote -v

如果关联有误,可以删除关联

git remote rm origin

五、提交记录至git

提交记录之前,先拉取远程git项目文件(README.md),否则直接提交会报错

git pull --rebase origin master

拉取成功后,执行push命令

git push -u origin master

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值