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

原创 2017年07月27日 20:47:13

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

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

这里写图片描述

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】

[ git-svn ] git 和 svn 的混合使用

项目版本管控,主要分成 "集中式" svn 和 "分布式" git 两种. 以项目源代码版本管控为例阐述:     svn  和  git 共同点:  服务器和本地机都各有一份项目源代码,...

GIT版本控制 — GIT与SVN的相互转换 (三)

git-svn   git-svn用于Git和SVN的转换,可以把Git仓库迁移成SVN仓库,反之亦可。 详细介绍可见[1],或者命令行输入git-svn。   Bidirectional ...
  • zhangskd
  • zhangskd
  • 2015年02月14日 15:48
  • 21592

git-svn — 让git和svn协同工作 【命令行】

svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来...

SVN——SVN项目迁移到GIT

svn有很多优点,但是git的出现对svn的冲击的确很大,现在很多公司项目的都迁移的git上了,下面是我自己在做svn迁移项目到git上面时候整理的一些资料。暂时就些整理这些,具体的操作如果有看不懂的...

git-svn — 让git和svn协同工作

svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来...

git 实用积累---git svn

1,  Git SVN 工作流程  尽管你可以从网上找到成千上万篇关于Git和git-svn,  但是本文主要介绍如何在一个以svn作为版本管理软件的项目里使用git。(假如你已经有了git-s...

Git-命令行-删除本地和远程分支

命令行方式Git Bash: 切换到要操作的项目文件夹 命令行 : $ cd 查看项目的分支们(包括本地和远程) 命令行 : $ git branch -a 删除本地分支 命令行 : $ gi...

gitlab新建项目初体验

gitlab已安装在Ubuntu虚拟机上(充当服务器),客户端为Linux主机。下面给出了gitlab初次新建项目前后的详细过程,主要用图做记录。1. 客户端访问安装在服务器上的gitlab1)打开虚...
  • jackghq
  • jackghq
  • 2017年01月21日 21:42
  • 3913

mac 下svn 代码迁移到git

安装clone svnkevinxwdeMacBook-Air:git-project kevin$ git svn clone http://sources.***.net/svn/***/bran...

解决android studio 中SVN和git冲突 无法提交代码

android studio中断开SVN连接,并彻底清理项目中的.svn文件 这是一片转载的文章~~~ 项目中遇到过,从之前SVN管理的项目,现在要把 其中的一个module A放到新的项...
  • ccj659
  • ccj659
  • 2017年07月01日 12:15
  • 412
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
举报原因:
原因补充:

(最多只允许输入30个字)