IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> svn多个项目迁移到同一个git的不同分支下的方法 -> 正文阅读

[开发工具]svn多个项目迁移到同一个git的不同分支下的方法

一、前言

最近要把svn多个项目迁移到同一个git的不同分支下。

如果只迁移代码的话,那当然好说;

问题是想把svn多个项目的提交记录也迁移到git,还是迁移到同一个git的不同分支下,就有点麻烦了。

在此总结下具体操作流程。

二、迁移目标

SVN项目my_project,有2个url,分别是生产测试的代码:

http://svncloud.it.com/my_project/prod
http://svncloud.it.com/my_project/test

要迁移到同一个git的main分支test分支下,git的url为:

http://gitlab.it.com/my_project/my_project.git

三、具体操作流程

1.假设为windows环境,确认安装了TortoiseSVN,TortoiseGit,Git这3个软件

2.进入我的电脑的某个文件夹,右击->Git Bash Here,打开cmd窗口,执行命令,获取svn提交账号信息。(其中,url是svn的地址,末尾的./svn2git.txt是保存文件的路径)

svn log http://svncloud.it.com/my_project/prod -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@taikanglife.com>"}' | sort -u > ./svn2git.txt

3.使用git svn命令,把svn项目以git的样式下载到本地,提交记录使用刚才生成的提交账号的信息文件。(其中,url还是svn的地址,末尾的./my_project是项目下载到本地后保存的路径)

git svn clone http://svncloud.it.com/my_project/prod --no-metadata --authors-file="svn2git.txt" ./my_project

4.登录gitlab,创建一个新的项目,并且在这个项目中准备2个分支。
默认会创建一个main分支(用来提交生产prod代码),然后自己手动创建一个test分支。
然后得到一个git地址,例如:

http://gitlab.it.com/my_project/my_project.git

5.现在要把本地的my_project项目,提交到git的main分支下(因为svn下载的是prod项目),操作如下:
进入本地的my_project文件夹,然后windows可以右击->Git Bash Here,打开cmd窗口。

6.因为本地my_project项目,默认是master分支,为了提交到远程git的main分支,首先需要在本地把项目从本地master分支复制到本地main分支(自己新建一个),命令如下:

git branch main
git checkout main

//如果不这样,到时候会报错:error: src refspec main does not match any

7.执行下方命令,提交到git的main分支:

git remote add origin http://gitlab.it.com/my_project/my_project.git
git push origin main  --force

8.如果想把远程git的内容pull到本地,可以使用这个命令:

git pull origin main --allow-unrelated-histories

意思是允许不同的提交历史存在。(如果pull后有冲突,需要自己解决冲突)

9.上方就把svn的prod项目迁移到了git的main分支下;

如果要把svn的test项目迁移到同一个git的test分支下,只需要参考上方的步骤,下载test项目到本地,把main换成test即可。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:03:22  更:2022-04-18 18:06:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:04:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码