SVN迁移至GitLab,并附带历史提交记录

Git在代码管理方面比SVN有更多的优势,如代码审查,分支和合并。

一、准备工作

  1. 安装Git环境,配置本地git账户信息:
bash 复制代码
git config --global user.name "XXX"
git config --global user.email "XXX@mail.com"

可通过命令git config -l 查看结果

  1. SVN的用户名和密码(同步代码时需要输入)

  2. svn账号与git账号映射,新建文件 userinfo.txt,左侧是SVN的账号,右侧是git账号信息,用=号连接:

    svn1=git1git1@mail.com
    svn2=git2git2@mail.com
    svn3=gitxgitx@mail.com

注意:

  • 需要将涉及到的同步记录中的用户都做映射,否则在同步时可能会报错
  • 对于无法对应的人员,如离职人员,有SVN账号,但是没有现在的GIT账号,保险起见,可以采用无关紧要的账号进行对应,或者单独建一个账号也可以,例如使用的test账号进行标识的

二、导出SVN项目至本地

  1. 创建空文件夹用于存放SVN的代码,并将userinfo.txt文件放置在同一层级

    │ userinfo.txt
    └─ MyProject

  2. 鼠标右键 选中Git Bash Here 进入git命令行,执行:

bash 复制代码
git svn clone -r 12345:HEAD svnurl --no-metadata --authors-file=userinfo.txt MyProject

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

  1. 执行命令后,会弹窗要求输入SVN的账号和密码,然后就会进行同步操作,最终时间长短主要是看需要同步提交记录的多少。

三、与远程git仓库关联起来

  1. 进入项目文件夹,
bash 复制代码
cd MyProject
  1. 关联远程事先创建好的git项目
bash 复制代码
git remote add origin gitURL

如:git remote add origin http://192.168.1.xx:5678/MyProject.git

  • 查看关联情况:
bash 复制代码
git remote -v
  • 如果关联有误,可以删除关联
bash 复制代码
git remote rm origin
  1. 推送本地项目到git仓库
  • 提交记录之前,先拉取远程git项目文件(如:README.md),否则直接提交会报错
bash 复制代码
git pull --rebase origin master
  • 拉取成功后,执行push命令
bash 复制代码
git push -u origin master

执行命令后,可能会弹窗要求输入Git的账号和密码

ref:

1、SVN迁移至GIT,并附带历史提交记录

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

相关推荐
运维开发王义杰1 天前
YAML:锚点深度解析,告别重复,拥抱优雅的配置艺术
ci/cd·gitlab
hkNaruto2 天前
【Docker】openEuler 使用docker-compose部署gitlab-ce
docker·容器·gitlab
码事漫谈5 天前
SVN 仓库迁移与清理指南:如何正确切换仓库并保持代码整洁
svn
hl04065 天前
GitLab CI + Docker 自动构建前端项目并部署 — 完整流程文档
ci/cd·docker·gitlab
先天打工圣体的男人5 天前
Linux环境gitlab多种部署方式及具体使用
运维·git·gitlab
委婉待续6 天前
基于linux环境在centos7上部署gitlab
gitlab
疯狂吧小飞牛10 天前
基于ubuntu搭建gitlab
linux·ubuntu·gitlab
__Smile°11 天前
Gitlab+Jenkins+K8S+Registry 建立 CI/CD 流水线
linux·ci/cd·docker·kubernetes·gitlab·jenkins
天和地丰11 天前
AAltium SVN Database Library 配置使用说明
数据库·嵌入式硬件·svn
某某11 天前
gitlab启动失败,如何解决
gitlab