最近逐步逐步的将公司的项目都从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

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

git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?的更多相关文章

  1. Git学习笔记-上传一个新的项目到GitHub上

    前提: 已有Github账号,已在Github上建立了仓库,已在Github上配置了SSH,已上传过一些项目到Github上 目标: 目前有一个新的项目,需要上传到github上 我的做法记录: 1. ...

  2. CakeDC(cakephp company)Git workflow--适合于较大团队大型项目开发

    CakeDC Git workflow是一个项目开发和版本发布的工作流,在这个工作流程中开发和版本发布周期是基于几个关键阶段(key phases): Development: 所有活跃的开发活动都由 ...

  3. J2EE学习从菜鸟变大鸟之八 企业级项目开发的思考

    什么是企业级项目开发 "企业级项目".企业级项目开发,Java也是企业级项目开发,这个我们到处说.听,每天被我们挂在嘴边,可是到底什么项目才算是"企业级"?自己 ...

  4. Django学习笔记(19)——BBS+Blog项目开发(3)细节知识点补充

    本文将BBS+Blog项目开发中所需要的细节知识点进行补充,其中内容包括KindEditor编辑器的使用,BeautifulSoup 模块及其防XSS攻击,Django中admin管理工具的使用,me ...

  5. Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现

    本文主要学习验证码功能的实现,为了项目BBS+Blog项目打下基础. 为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是“Com ...

  6. Django学习笔记(18)——BBS+Blog项目开发(2)主体思路及流程

    这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写 ...

  7. Django学习笔记(20)——BBS+Blog项目开发(4)Django如何使用Bootstrap

    本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其 ...

  8. GIT学习笔记(1):创建版本库

    GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...

  9. git学习------> Gitlab如何进行备份恢复与迁移?

    前段时间,在某台CenterOS服务器上搭建了Gitlab环境,并且大家陆陆续续的都把代码从svn迁移到了gitlab,但是之前的CenterOS服务器并不是搭建在公司的机房环境,而是搭建在办公室的某 ...

随机推荐

  1. lua工具库penlight--05日期和时间

    创建和显示时间 Date类提过了简洁的使用date和time的方法.它依赖于os.date和os.time. Date对象可以通过table创建,如果os.date,同时提过了获取和设置date 成员 ...

  2. 利用MapReduce实现数据去重

    数据去重主要是为了利用并行化的思想对数据进行有意义的筛选. 统计大数据集上的数据种类个数.从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据去重. 示例文件内容: 此处应有示例文件 设计思路 数据 ...

  3. ipipe-3.10

    git://git.xenomai.org/ipipe-gch.git for-ipipe-3.10

  4. VS Code直接调试Angular代码

    安装VS Code扩展 安装Debugger for Chrome 安装Debugger for Firefox 配置Launch.json文件 Launch.json文件的创建和生成我们可以利用VS ...

  5. 模拟HttpContext单元测试

    众所周知 ASP.NET MVC 的一个显著优势即可以很方便的实现单元测试,但在我们测试过程中经常要用到HttpContext,而默认情况下单元测试框架是不提供HttpContext的模拟的,本文通过 ...

  6. Hibernate Annotations 注解

    Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...

  7. SharePoint Survey WebPart 调查 Web部件

    SharePoint Survey WebPart 调查 Web部件 Web部件下载地址 点击此处下载. 安装激活Web部件 过程简单此处省略. 项目描写叙述 调查是SharePoint中协同门户的一 ...

  8. C语言0长度数组(柔性数组)

    0长度数组,又称为柔性数组(flexible array).通经常使用来实现变长数组.常见于TLV(type-length-value)的数据结构中. 在标准 C 和 C++ 中,不同意用 0 长度数 ...

  9. 浅谈AutoResetEvent的用法

    using System;using System.Threading; namespace AutoResetEvent_Examples{    class MyMainClass    {    ...

  10. Angular ViewChild

    viewchild // 使用方法 git clone https://git.oschina.net/mumu-osc/learn-component.git cd learn-component ...