当前位置: 首页 > news >正文

git学习------从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?...

最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年。

因此导致虽然项目迁移过来了,但是团队开发还是在SVN提交代码。所以得想个办法同步迁移之后继续在SVN提交的代码到Git来,不然到时候又得做一次迁移操作得多操蛋。

在网上查看了下资料,都是讲SVN迁移到Git的过程,并没有讲解迁移之后团队成员继续在SVN提交代码,然后需要同步最新的SVN提交记录到Git的过程,因此自己慢慢探索,居然成功了,现在写这篇博客自己记录记录。

一、同步迁移之后继续在SVN提交的代码到Git

第1步,通过git show-ref命令查看分支情况

[root@xtgl207940 trunk]# git show-ref
9caa27cc211162aeed6e944144f4c676d2f1dfe1 refs/heads/develop
9caa27cc211162aeed6e944144f4c676d2f1dfe1 refs/heads/master
0ba94e3383d6f478844b1e674465fbc6ae0277e3 refs/remotes/git-svn
9caa27cc211162aeed6e944144f4c676d2f1dfe1 refs/remotes/origin/develop
62333dcb3beeb73e28538f815abfdfe791b88c00 refs/remotes/origin/local-git-svn
9caa27cc211162aeed6e944144f4c676d2f1dfe1 refs/remotes/origin/master

这里写图片描述

通过上面的操作,我们可以看到有个远程分支remotes/git-svn

这里写图片描述

从图中可以看到该远程分支remotes/git-svn对应的就是git clone 迁移时候的svn仓库。因此可以在本地建立一个分支 local-git-svn,然后同步svn的提交记录

第2步,建立本地分支 local-git-svn 对应远程分支git-svn

这里写图片描述

[root@xtgl207940 trunk]# git checkout -b local-git-svn remotes/git-svn
切换到一个新分支 'local-git-svn'

第3步,同步svn最新的提交记录

使用 git svn fetch 命令同步SVN最新的提交记录,然后可以通过 git log命令查看git的提交记录对应的svn记录相同。

[root@xtgl207940 trunk]# git svn fetch 
[root@xtgl207940 trunk]# git log

这里写图片描述

第4步,切换分支到master分支,然后merge刚才的local-git-svn分支

这里写图片描述

通过git log 命令查看提交记录,发现已经同步了最新的SVN仓库提交记录。

这里写图片描述

第5步,提交master分支到GitLab远程仓库

git push -u origin master

这里写图片描述

第6步,查看gitlab上的代码

查看gitlab上,可以发现已经同步迁移之后继续在SVN提交的代码到GitLab

这里写图片描述

反复同步迁移之后继续在SVN提交的代码到Git

当同步完成之后,还是会有人继续在svn提交,因此我们要继续同步迁移之后继续在SVN提交的代码到Git

第1步:删除分支 local-git-svn

第2步:重复上面的操作来一遍

这里写图片描述

查看gitlab上 刚刚同步的最新svn提交记录,如下所示:

这里写图片描述


这里写图片描述

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/76220621

如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。

这里写图片描述

转载于:https://www.cnblogs.com/ouyangpeng/p/8537640.html

相关文章:

  • Info.plist中常用的key简介
  • python django 数据库查询方法总结
  • 空间统计之七:中心要素
  • IDE---ubuntu11.10配置GVim
  • MySQL大表删除导致服务器变慢的分析
  • PHP:第六章——正则表达式的基本概念
  • 华为交换机DHCP SNOOPING 配置实例
  • 走进windows编程的世界-----消息处理函数(3)
  • 世界上最有名的17句话
  • springmvc笔记(3)—使用@RequestMapping映射请求
  • Linux检测硬盘坏道
  • 关于extract.autodesk.io的一些说明
  • 密码学中的爱丽丝与鲍勃
  • 产业新低:杜拜太阳能得标价跌破3美分!
  • 网络客户端
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • java 多线程基础, 我觉得还是有必要看看的
  • Java,console输出实时的转向GUI textbox
  • Next.js之基础概念(二)
  • php的插入排序,通过双层for循环
  • 今年的LC3大会没了?
  • 如何选择开源的机器学习框架?
  • 数据科学 第 3 章 11 字符串处理
  • 我这样减少了26.5M Java内存!
  • 项目实战-Api的解决方案
  • 在weex里面使用chart图表
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​iOS安全加固方法及实现
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)Mysql的优化设置
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)人的集合论——移山之道
  • (转)用.Net的File控件上传文件的解决方案
  • ..回顾17,展望18
  • .Mobi域名介绍
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • [ABC294Ex] K-Coloring
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [gdc19]《战神4》中的全局光照技术
  • [hdu1561] The more, The Better 【树形DP】
  • [HUBUCTF 2022 新生赛]
  • [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信