svn迁移到git

通过git bash将svn迁移到git上,并保留svn的提交历史。

一、准备

1、在电脑上安装git

2、确认svn账号具备该svn地址的操作权限

3、准备将要操作的svn项目地址、以及该项目下所有提交人的账号信息(在idea工具看提交历史),将信息存放到author.txt(随便命名),信息存放的格式: 提交者svn账号=提交者git账号<邮箱>

bash 复制代码
zhangsan=zhangsan<zhangsan@qq.com.com>
lisi=lisi<lisi@qq.com>

二、操作步骤

1、首先在项目组的gitlab上创建对应的空项目,拿到该项目的git地址,如:

https://192.168.0.88:1111/web/demo.git
注意:当前帐号为管理者,避免接下来push有问题

2、切换到将要存放该git项目的父目录,打开Git Bash,例如是:d:\java\code\。

执行脚本:

bash 复制代码
git svn clone -r124245:HEAD http://192.168.0.88:81/svn/java/demo --no-metadata --no-minimize-url --authors-file=/d/java/code/author.txt demo --username=zhangsan
命令 含义
-r124245:HEAD 从版本号124245到最新的提交记录(idea工具svn历史记录可以查看),如果不加这个命令,默认从版本号0开始,非常费时
--no-metadata 保留svn的metadata信息,快很多
--no-minimize-url 如果账号没有根目录的权限,建议加上。默认是从根目录一直检索下来,如果不加的话,会因为权限问题报错:Using higher level of URL: 加上则表示只从你定义的目录检索
--authors-file author.txt所在的路径,不能用windows的路径,参考git bash默认的路径方式
--username 要操作svn的账号信息

3、打开本地git项目的目录,把一些不必要的配置信息删除,然后bash进入到该项目目录下,将项目关联到远程仓库,并push到远程仓库,整个过程就结束了。

bash 复制代码
git remote add origin https://192.168.0.88:1111/web/demo.git
git push -u origin master
相关推荐
milanyangbo3 小时前
像Git一样管理数据:深入解析数据库并发控制MVCC的实现
服务器·数据库·git·后端·mysql·架构·系统架构
猫头虎-人工智能3 小时前
openEuler远程批量部署实战 SSH VNC IPMI全流程解析
运维·git·开源·ssh·github·开放原子·开源软件
Cx330❀4 小时前
Git 基础操作通关指南:版本回退、撤销修改与文件删除深度解析
大数据·运维·服务器·git·算法·搜索引擎·面试
CaracalTiger4 小时前
在openEuler操作系统中多样性算力支持与性能压力测试操作
linux·运维·git·开源·开放原子·压力测试·开源软件
草莓熊Lotso5 小时前
企业级 Git 分支管理模型实战:从 Git Flow 到 DevOps 落地
运维·服务器·开发语言·c++·人工智能·git·devops
小王不爱笑13216 小时前
gitignore基本使用+Git分支使用
git
db_cy_206219 小时前
Git对服务器配置文件进行版本控制
运维·服务器·git
好好研究20 小时前
Git - Git分支管理
git
冬-梦21 小时前
iPad Obsidian Git 同步 Gitee 仓库完整指南
git·gitee·ipad·obsidian·efficiency
醇氧21 小时前
【git】 撤回一个本地提交
大数据·git·elasticsearch