svn 迁移至git操作手册
svn 迁移至git操作手册
项目交付、版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等。git自带了从svn迁移至git的工具命令,可很好的对svn上的提交历史做迁移和映射,操作简单方便。但是初次接触不熟练,这里做一个总结和记录,内容尽量简单化。争取提供给刚刚接触git和准备迁移的用户一个简单易懂的方案。
迁移流程图:

这里分为两步来说明,第一步是比较简单迁移要件准备,已经准备好的用户可直接略过,直接进入第二步进行迁移操作。
|第一步:准备工作:
① svn项目(SvnProject)地址及访问此svn项目权限账号:
地址:https://mytest.cn/svn/project/Example/ SvnProject /
账号:test/test@123
② git新建一个仓库(如:GitProject)存放迁移项目
远程仓库地址:https://192.165.22.33/migrate/GitProject
账号/密码: my_test/mytest@123
③ 待迁移svn项目有过提交记录的用户清单:
如果具备①的svn账号又没有svn管理员权限,可以通过导出所有提交历史并用代码提取一下用户清单(开发人员都懂,不赘述)。获取到的用户清单为user1,user2,user3。创建文件users.txt,按如下格式存入svn账号与git账号的映射关系

“=”前为svn账号,“=”号后为git账号,尖括号为git用户的邮箱,尖括号及邮箱可无。
注:如果有些用户已经离职了,其账号在git中没有,这里依然可以映射至不存在的git用户。
如果SVN用户未全部列举,执行迁移时会报如下错误:

报这个错误时可简单粗暴删除文件夹重新导出即可。
④ :电脑上安装git客户端,客户端下载地址:
https://www.git-scm.com/download/
下载后安装客户端,安装及配置参考:
https://blog.csdn.net/u013295518/article/details/78746007
|第二步:数据迁移
一:导出svn记录到本地
在你存放users.txt的同级目录新建一个文件,命名为你的项目名:GitProject

右键文件空白处,单击Git Bash Here

在bash界面,输入git拷贝命令:
git svn clone https://mytest.cn/svn/project/Example/MyProject/ --no-metadata --authors-file=users.txt GitProject

参数说明:
- git svn clone 是Git的迁移命令
- https://mytest.cn/svn/project/Example/MyProject/是svn服务器地址,注意需要到迁移项目的根目录一级
- --no-metadata 参数去除了svn上很多杂乱的参数信息,保留了清晰简洁的提交记录信息。
- -file=users.txt 为你的用户映射文件夹;
- GitProject是刚刚新建的空白项目名文件夹
第一次操作,会多次要求账号密码:请注意每次提示信息,第一次密码输入是操作系统的用户密码,第二次为svn账号和密码,第三次为git的账号密码。注意按提示输入。
二:关联git远程仓库
执行
cd GitProject
进入迁移项目路径下:
执行:
git remote add origin git@192.165.22.33:migrate/GitProject.git
后即已关联远程git仓库,执行可查看关联情况
git remote –v
未关联时:

关联成功后:

如果关联错了,可以使用 git remote rm origin删除错位关联后重新关联即可
git remote rm origin
三:提交记录至git
svn项目中的所有提交记录和历史版本都已经导出本地并关联了远程仓库,现在只需要将这些记录推送至远程仓库即可。
执行
git push -u origin master
命令输入后需要输入git账号\密码
执行成功后,就完成了整个迁移过程。登录git网站,可以看到空白仓库中多了很多提交记录和文件。
引用资料:
github推送项目常见错误fatal: remote origin already exists
https://blog.csdn.net/dreamskyforjava/article/details/24322533
Git 与其他系统 - Git 与 Subversion
svn 迁移至git操作手册的更多相关文章
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...
- SVN迁移到Git的过程(+ 一些技巧)
SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...
- SVN迁移到Git的过程(+ 一些技巧
关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...
- svn迁移到git仓库并保留commit历史记录
svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...
- 使用subgit进行svn迁移至git(branch,tags)
前言: 最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程 整体思路是进行一次导入: 先通过subgit将svn整个import至本地,在与git上的项目进行合并. 1 ...
- 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录
公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...
- svn迁移到git
步骤命令如下: > git svn clone https://svn-url/ProjectName --no-metadata --authors-file=user.txt --trunk ...
- SVN迁移到Git原因说明
1.Git分布式的源码管理 每位开发人员计算机本地会有一份代码库,开发人员可在不受其他人代码提交影响的前提下对源码进行提交/回滚/撤销等操作. 在独立的开发任务中即可实现对源码管理又不受其他开发人员提 ...
- 从svn迁移至Git并保留所有 commit 记录
用户映射文件user.txt,等号左边为svn账号,右边为Git用户名和邮箱.注意:svn中有多少用户就要映射多少 test1=test1<147258369@qq.com>test2=t ...
随机推荐
- css的input文本框的 propertychange、focus、blur
1.输入框检查的需求--即时搜索--解决方案 当input的value发生变化就会发生,无论是键盘输入还是鼠标黏贴的改变都能及时监听到变化,propertychange,只要当前对象属性发生改变.(I ...
- capwap学习笔记——初识capwap(三)(下)
2.5.6.25 Image Data to Reset WTP下载image后重启,重新设置DTLS连接 ¢ WTP: ü 当image的下载完成,或者ImageDataStartTimer定 ...
- 许式伟:我与Go语言的这十年[转]
2017-12-18 许式伟 Go中国 2007 年 9 月 20 日,关于设计一门全新语言的讨论正式开始,这门全新的语言,就是后来的 Go.时至今日,Go 语言已经发布到 1.9 版本,走过了整整十 ...
- sql server 阻塞查询
在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w, ...
- SpringMVC接口测试异常:Can not deserialize instance of int out of START_OBJECT token
之前使用springmvc搭建了restful风格的接口服务,在使用mockmvc进行集成测试的时候出现了异常:Can not deserialize instance of int out of S ...
- 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
由于最近在做监控方面的工作,因此也读了不少相关的经验分享.其中有这样一篇文章总结了一些基于Spring Boot的监控方案,因此翻译了一下,希望可以对大家有所帮助. 原文:Near real-time ...
- LoadRunner Mysql性能优化
原文:https://blog.csdn.net/u011910905/article/details/49863787 一.查询与索引优化分析 1.show命令: show engines; 显示存 ...
- json数据取值
var data = JSON.parse(JSON.stringify(position, null, 4));
- jdk下载以及配置
http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html
- tkinter中布局pack、place和grid(八)
tkinter中布局pack.place和grid pack布局 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuy ...