SVN转GIT

news2024/11/17 17:42:51

SVN迁移至Git

PS:进入正文前,提一句题外话,建议参考官网教程看,因为很多情况,别人写的只是针对自己所对应的场景,可能并不符合你所面对的场景,这里附上官网教程链接:Git官网迁移教程

  1. 收集SVN上的人员信息,并编辑成git能识别的账号

  1. 到svn项目目录右键选中gitbash打开窗口,执行获取用户并映射成git样式账号命令如下:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@wenxiang.cn>"}' | sort -u > userinfo.txt

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@wenxiang.cn>"}' | sort -u > userinfo.txt
  1. 然后会在目录生成文件userinfo.txt样式如:zhansan = 张三 <zhansan@qq.com>

  1. 使用git svn clone克隆代码

  1. 新建个文件夹,将生成的userinfo.txt放入新建的文件夹

  1. 然后在新建的文件夹中右键选中gitbash弹出窗口后执行下面命令,拉取svn代码到本地新建文件夹中

  1. ps:以下命令中"https://svn_project_url"为你的svn代码地址

  1. 参数说明:

  1. --authors-file=userinfo.txt:指定了用户文件

  1. --no-metadata:不导出SVN元数据信息(导出时本地不会生成.svn目录)。若还需要从git反向导入至git,需要导出SVN元数据信息,则不能使用此选项

  1. --no-minimize-url:表示不尝试读取上级目录

  1. --prefix=svn/: 前缀

  1. -s:标准svn项目结构

git svn clone ["SVN repo URL"] --no-metadata --no-minimize-url --authors-file=userinfo.txt --stdlayout
  1. 若是第一次拉取svn中一般会出现这个窗口提示,这个提示就填:p,

  1. 填完p后,后面还会弹出窗口做相关验证,分别是操作系统的密码(若你电脑或者服务器设置了密码),svn的账号,svn的密码

  1. 都填完了,就会开始拉去svn代码了

  1. 拉取完之后,目录中会有个.git文件,为了后续

  1. PS:为了后续出错不用再重新拉取,这里可以将.git文件拷贝备份

  1. 用git命令查看提交记录(按q退出)

  1. 右键选中gitbash在窗口中用git命令查看提交记录 (按q退出 )

git log
  1. svn的分支、标签对应git

  1. 在svn转git,拉到本地后,由于svn上的规则与git上有出入,所以需要进行以下操作进行匹配:

  1. 首先,处理标签,创建本地标签并删除对应的远程分支:

//创建本地标签
git for-each-ref refs/remotes/origin/tags |cut -d / -f 5-|grep -v @| while read tagname; do git tag "$tagname" "origin/tags/$tagname"; done
//删除多余分支标签
git for-each-ref refs/remotes/origin/tags |cut -d / -f 5-|grep -v @| while read tagname; do git branch -r -d "origin/tags/$tagname"; done

说明:

  1. 然后,在本地针对每一个远程分支创建对应的本地跟踪分支:

git for-each-ref refs/remotes/origin/ |cut -d / -f 4-|grep -v @| while read branchname; do git branch "$branchname" "refs/remotes/origin/$branchname"; done
git for-each-ref refs/remotes/origin/ |cut -d / -f 4-|grep -v @| while read branchname; do git branch -r -D "origin/$branchname"; done
  1. 根据官方文档的描述,git svn会创建一个名为trunk的额外分支,它对应于Subversion的默认分支,然而trunk引用和master指向同一个位置。鉴于在Git中master最为常用,因此我们可以移除额外的分支:

git branch -d trunk
  1. 至此,分支结构就正常了

  • PS:这一步的目的就是将分支结构转换正常,如果经过以上转换,分支结构还是不正常,可以自行调整

  1. 关联git上的项目地址

  1. 关联需要迁移的git库上项目地址(建议创建新的创库,避免合并出错,这个地方直接用新建的空仓库就行,任何文件都不要放,分支也不用建,会有默认的master,后面传的时候会自动创建分支),会弹窗验证,输入git账号密码

git remote add origin https://gitee.com/xxxx.git
  1. 报错解决:

  1. 错误:error: remote origin already exists.

  1. 原因:项目已经绑定了远程仓库

  1. 解决:

  1. 先输入以下命令删除关联的origin的远程库

git remote rm origin 
  1. 再次绑定自己的远程库

  1. 将远程仓库代码拉取到本地(注意分支)【全新仓库,这步可以省略】

  1. 将远程仓库代码拉取到本地(注意当前分支)

git pull origin master
  1. 如果拉取时报错 ,说明远程仓库有操作记录,可以使用强制合并提交

git pull origin master --allow-unrelated-histories
  1. 这一步是拉取了远程仓库,对应的文件夹操作是在“/.git/refs/remotes/origin”目录下拉到了远程仓库的master分支

  1. 将本地代码提交到远程仓库

  1. 合并到远程master分支

#推送分支到远程仓库
git push origin --all
#推送标签到远程仓库
git push --tags
  1. 这一步需注意,如果本地分支和线上分支名不同,可以用以下命令改名,改名之后再提交到远程就可以了

# 重命名命令:
git branch -m 旧名字 新名字
# 实例
git branch -m master pre
  1. ps:查看branche和tag命令:

git branch --all
git tag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaWeb】传输层协议——UDP + TCP

目录 UDP协议 UDP协议结构 UDP的特点 TCP协议 TCP协议结构 TCP的特点 TCP的十个核心机制 确认应答 超时重传 连接管理 滑动窗口 流量控制 阻塞控制 延迟应答 捎带应答 粘包问题 异常处理 UDP协议 UDP协议结构 源端口&#xff1a;存储的是发送方的端口号。 目的…

Python循环语句代码详解:while、for、break

目录 1 while循环 1 while循环 循环语句是程序设计中常用的语句之一。任何编程语言都有while循环&#xff0c;Python也不例外。while循环的格式如下所示。 while(表达式): … else: … while循环的执行过程&#xff1a;当循环表达式为真时&#xff0c;依次执行whi…

使用webpack(4版本)搭建vue2项目

在学习webpack之前&#xff0c;也从网上搜过一些用webpack搭建vue项目的博客&#xff0c;但是在自己使用的时候会报各种的问题&#xff0c;报错的根本原因其实就是版本的问题&#xff0c;以下代码是经过解决了许多报错问题研究出来最简单最方便搭建vue2项目的方法首先创建一个空…

配置okta saml验证单点登录splunk

目标 使用okta作为splunk单点登录身份提供程序&#xff0c;通过saml身份验证配置&#xff0c;可实现通过okta平台账号单点登录splunk应用 环境准备 1. okta环境 首先在okta上注册一个账号&#xff0c;注册地址https://login.okta.com/signin/register/ &#xff0c;注册完成…

使用gaussian和antechamber拟合RESP电荷过程

使用gaussian和antechamber拟合RESP电荷过程 我们以甲烷为例子 使用gaussian和antechamber拟合RESP电荷的过程大致分为两步&#xff1a;首先通过gaussian计算得到esp电荷&#xff0c;然后使用antechamber拟合resp电荷. 构建分子的结构文件&#xff0c;并存为mol2文件 2 使用…

工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明

工业网关控制器CK-GW06-E01是一款工业级网关控制器&#xff0c;以太网通信接口&#xff0c;支持 EtherNet IP|Modbus TCP 工业协议。可实现一拖六&#xff0c;同时带有六组输入 检测 IO 和六组输出控制 IO。 本文将重点介绍工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明。 工…

正大国际期货:影响国际恒生指数期货价格波动的因素!

香港是世界第三大金融中心,是一个世界性的金融市场,恒生指数是反映香港股市价幅动趋势最有影响力的一种股价指数。那么有哪些因素会影响其波动价格呢&#xff1f;下面正大IxxxuanI详细来讲解一下&#xff01; 一、欧美股市的涨跌 恒生指数的交易遍布全球各国,由于时差的原因,…

【自学Python】一文读懂Python字符串是否是数字

Python字符串是否是数字 Python字符串是否是数字教程 在开发过程中&#xff0c;有时候我们需要判断一个 字符串 是否是 数字 形式&#xff0c;在 Python 中&#xff0c;判断字符串是否只由数字组成的函数为 isnumeric() 。 isnumeric() 函数只能判断 unicode 字符串&#xf…

FPGA时序约束与分析 --- 时序约束概述

本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下&#xff1a;synth_design -> opt_design -> place-design -> phys_opt_design -> route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法…

华为手表开发:WATCH 3 Pro(7)获取电量信息

华为手表开发&#xff1a;WATCH 3 Pro&#xff08;7&#xff09;获取电量信息初环境与设备文件夹&#xff1a;文件新增第二页面showBatteryInfo.hmlshowBatteryInfo.js修改首页 -> 新建按钮 “ 跳转 ”index.hmlindex.js 引用包&#xff1a;system.router首页效果点击结果初…

ChIP-seq 分析:Mapped 数据可视化(4)

1. Mapped reads 现在我们有了 BAM 文件的索引&#xff0c;我们可以使用 idxstatsBam() 函数检索和绘制映射读取的数量。 mappedReads <- idxstatsBam("SR_Myc_Mel_rep1.bam")TotalMapped <- sum(mappedReads[, "mapped"])ggplot(mappedReads, aes(x…

SpringAOP切面实例实现对数据过滤返回,SpringAOP切面实现对用户权限控制,通过@Around注解过滤修改方法返回值

文章目录需求内容:实现&#xff1a;步骤一&#xff1a;导入SpringAOP相关依赖pom.xml步骤二&#xff1a;自定义两个注解步骤三&#xff1a;需要用到的实体类**步骤四&#xff1a;切面具体实现**用法1.需要过滤返回值的方法添加注解FilterByUser2.数据Dto在需要过滤的字段添加Fi…

树与二叉树 总复习

一、树的定义 树是一个有n个&#xff08;n>0&#xff09;结点的有限集合。 如果n0&#xff0c;称为空树&#xff1b; 如果n>0&#xff0c;称为非空树&#xff0c;有且仅有一个特定的称为根Root的结点&#xff08;无直接前驱&#xff09; 如果n>1,除了根节点外&…

总结高频率Vue面试题

目录 什么是三次握手&#xff1f; 什么是四次挥手&#xff1f;&#xff08;close触发&#xff09; 什么是VUEX&#xff1f; 什么是同源----跨域&#xff1f; 什么是Promise&#xff1f; 什么是fexl布局&#xff1f; 数据类型 什么是深浅拷贝&#xff1f; 什么是懒加载&…

HTB打靶(Active Directory 101 Multimaster)

Nmap扫描 Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-08 02:52 EST Stats: 0:00:51 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 55.85% done; ETC: 02:54 (0:00:40 remaining) Nmap scan report for 10.129…

AcWing语法基础课笔记 第四章 C++中的数组

第四章 C中的数组 程序 逻辑 数据&#xff0c;数组是存储数据的强而有力的手段。 ——闫学灿 一维数组 数组的定义 数组的定义方式和变量类似。 数组的初始化 在main函数内部&#xff0c;未初始化的数组中的元素是随机的。 访问数组元素 通过下标访问数…

【正点原子FPGA连载】第十三章QSPI Flash读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十三章QSPI Fl…

异构数据库同步方案

目录 1 概述 2 原理 3 参数 1 概述 将企业生产系统产生的业务数据实时同步到大数据平台&#xff0c;通过对业务数据的联机实时分析&#xff0c;快速制定或调整商业计划&#xff0c;提升企业的核心竞争力。 依据同步数据是否需要加工处理&#xff0c;采用不同的技术方案&am…

网页概念、常用浏览器及内核、Web标准

网页、常用浏览器及内核、Web标准一、网页1.1、什么是网页&#xff1f;1.2、什么是HTML?&#xff08;重点&#xff09;1.3、网页的形成&#xff1f;二、常用浏览器三、浏览器内核四、Web标准&#xff08;重点&#xff09;4.1 为什么需要Web标准&#xff1f;4.2 Web标准的构成一…

数模补充(4)灵敏度分析

一、概念 1.1基础概念 灵敏度分析是一种分析模型输出响应程度与模型输入参数变化之间关系的方法&#xff0c;通过对模型输入参数进行变化和分析&#xff0c;来评估模型输出结果的稳定性和可靠性&#xff0c;以及各个输入参数对输出结果的影响程度。 1.2常用模型 1.3基本流程…