SVN仓库迁移至Git,保留commit提交记录 |
您所在的位置:网站首页 › svn迁移到新svn并保留提交记录 › SVN仓库迁移至Git,保留commit提交记录 |
最近公司要将SVN服务迁移,前段时间刚把SVN服务从windows服务器迁移到Linux。 现在项目越来越多,加之SVN的集中式管理,不支持分布式,分支切换麻烦,Git支持分布式开发,快照式数据,速度快,主干分支切换方便。给领导建议了一下把仓库迁移到git,领导的要求就是可以迁移,但是不能丢提交记录。经过自己的研究尝试,最终把SVN仓库成功迁移到git,下面将迁移过程分享出来。 一.软件安装及git配置 1.git安装 2.gitlab安装(我们使用的gogs,具体根据公司内部的架构和情况选择,中小企业,并且团规规模不是很大的情况下gogs是足够使用了) 3.git账号配置 在你准备作为git本地仓库的文件夹目录->鼠标右键->Git Bash Here 进入git命令行, 输入如下命令: git config --global user.name "username" git config --global user.email "[email protected]" username是gitlab下注册的用户名,[email protected]是gitlab下注册的邮箱 查看配置: git config --list 4.svn账号与git账号映射 在当前文件夹下创建文件userinfo.txt,文件内容如下斜体: (注:svn账号3在svn中有记录,但无git账号,提交记录中涉及到的svn账号需要全部列举出来,否则会报错。提交记录可以选择指定记录到最新记录,下面会有说明) svn用户名1=git用户名1 svn用户名2=git用户名2 svn用户名3=git用户名3
二. svn项目导出到本地git仓库 1.在存放userinfo.txt的同级目录下新建一个文件夹,名称最好命名成你的项目名称 2.继续在Git Bash执行下面命令: git svn clone -r 1126:HEAD svnurl --no-metadata --authors-file=userinfo.txt template 注:此处的 -r 1126:HEAD 代表从svn的1126版本到最新版本的提交记录,避免从第一个版本拉取数据量过大,操作耗时高。svnurl是你的svn项目地址。如果需要拉取所有记录,可去除 -r 1126:HEAD 此处执行命令后会弹出一个窗口,需要登录两次,第一次是登录本地电脑,使用你本地的计算机用户和密码就好;第二步是登录gitlab的用户名密码,这个根据自己注册的用户密码填写就好。 三、在gitlab上创建仓库(我们用的是gogs) 下图红框的地址为后面使用的giturl
四、关联git远程仓库 导入成功后,输入如下命令: cd template 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
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |