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

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

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

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

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

git svn 常用操作如下(图片来源于网络):
在这里插入图片描述

常用命令

# 下载一个 SVN 项目和它的整个代码历史,并初始化为 Git 代码库
$ git svn clone -s [repository]# 查看当前版本库情况
$ git svn info
​
# 取回远程仓库所有分支的变化
$ git svn fetch
​
# 取回远程仓库当前分支的变化,并与本地分支变基合并
$ git svn rebase 
​
# 上传当前分支的本地仓库到远程仓库
$ git svn dcommit
​
# 拉取新分支,并提交到远程仓库
$ svn copy [remote_branch] [new_remote_branch] -m [message]# 创建远程分支对应的本地分支
$ git checkout -b [local_branch] [remote_branch]

第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步:重复上面的操作来一遍

  • 第一步:删除loca-git-svn分支
  • 第二步:建立loca-git-svn分支
  • 第三步:git svn fetch
  • 第四步:git chekout master
  • 第五步:git merge local-git-svn
  • 第六步:git push-u origin master

在这里插入图片描述

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

在这里插入图片描述


这里写图片描述

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

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

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字节卷动

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值