同时使用SVN和Git进行版本控制

同时使用SVN和Git进行版本控制

相信很多小伙伴都要类似的困扰:

公司的项目因为是老项目或者习惯问题使用的是SVN, 但是因为项目太大或者不能频繁的提交或者需要离线使用或者使用不习惯或者其他等等因素, 个人需要使用Git来管理项目.

如何才能比较完美的达到我们的目的呢? 今天作者就给大家介绍下两个经过实践的方案, 如果大家有更好的方案, 也希望不吝赐教.

SVN和Git

两个版本控制软件的优缺点对比不是我们今天的重点. 本篇文章的重点在介绍这种特定的应用场景, 至于两种软件的各种对比和介绍, 在网上已经有大量优秀的文章, 各位小伙伴请自行探索.

方案一: SVN与Git共存


具体过程为:

  • 将项目从SVN服务器拉取下来.
  • 在根目录创建Git仓库, 添加好忽略文件.gitignore, 将.svn文件夹加入忽略.
  • 将目录里的所有除文件都加入git仓库.
  • 提交git.
  • 将.git文件夹加入svn的忽略列表, 到此, 初始化过程完成.

在日常的工作中从svn拉取更新后提交到git, 或者从git获取更改后提交到svn.

下面是大致的流程:

#创建目录
mkdir project
cd project

# 拉取svn
svn checkout https://192.168.1.102/xxxxx

# 创建空git项目
git init

# 添加忽略
touch .gitignore
cat ".svn" > .gitignore

# 提交git
git add .
git commit -m "init"

方案二: SVN作为远程分支

该方案将svn当做git的远程分支, 并使用git自带的"git svn xxx"系列工具, 具体过程如下:

  • 使用 git svn clone命令将svn仓库克隆下来.
  • 此时的仓库已经是一个正常的git仓库, 但是可以查看svn提交的日志信息.
  • 正常修改内容, 提交git.
  • 使用git stash命令暂存本地修改.
  • 使用git svn rebase拉取svn仓库最新修改.
  • 使用git svn dcommit提交修改到svn仓库.
  • 使用git push提交的git远程仓库.

下面是大致的流程:

mkdir project
cd project

git svn clone https://192.168.1.102/xxx -r 1000:HEAD
# 默认不带-r参数会克隆所有的svn版本, 可能会因为版本太多而造成失败
# 这里都传参指定克隆部分版本
# 或者也使用以下组合命令
#-----------------------------
git svn init https://192.168.1.102/xxx
git svn fetch -r 1000:HEAD #代表克隆从svn版本号1000到最新的内容
git svn fetch -r 1000 #代表克隆指定的版本
git svn fetch -r HEAD #代表克隆最新的版本
#----------------------------

# 添加忽略
touch .gitignore
cat ".svn" > .gitignore

# 提交git
git add .
git commit -m "init"

# 拉取svn避免冲突
git svn rebase

# 提交svn
git svn dcommit

# 提交远程git
git push

这种方式的好处是可以看到svn上面的提交日志, 只是每次提交版本时需要先rebase一下.

好啦, 今天的分享就到这里了, 祝大家😄.

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拂面清风三点水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值