Git svn 混用实践

git svn命令

使用场景,公司古老的代码都存在svn服务器。svn对于现在的开发最大的问题就在于,创建分支相比于git的本地分支实在是太重了。所以对于这些项目,在工作中使用了一段时间的git svn命令,本地使用git管理分支,远端代码仓库使用svn管理。

初始化仓库(git svn clone)

使用中由于是已经存在了svn的仓库,大多数时候都不需要使用git svn init来初始化仓库。
使用更多的是 git svn clone从远端clone仓库。
实践建议:
git svn clone -s <svn_repo_url>
git svn clone -T <trunk> -b <branch> -t <tags> <svn_repo_url>
git svn clone -r<reversion_start>:<reversion_end> <svn_repo_url>
简答介绍这几个常用的参数
-T -b -t :分别代表你svn仓库的目录结构中,trunk目录,branches目录,tags目录。
-s : 如果你的svn仓库使用的是标准的目录结构,即branches,tags,trunk。那么使用-s参数可以代替-T -b -t三个参数
-r :由于svn仓库已经有很多版本了,clone超过1000个版本就会非常慢,-r可以指定clone的版本范围,直接输入版本号即可。HEAD代表当前版本。
注意-r参数的使用可能导致无法拉取到所有分支,或者导致拉取不到tags,trunk等分支。原因是,比如你的trunk目录下的版本号是100,但是你使用-r200:HEAD来clone仓库,就会导致无法获得trunk目录下的内容。

更新代码(git svn rebase)

当你clone下来仓库之后,处于master分支下。
可以通过 git branch -a来获取所有的分支信息,
git checkout -b local_branch origin/remote_branch可以将远端分支关联到本地分支。
通过 git svn info --url命令获取当前分支对应的svn地址。
当确认好这些信息之后,通过git svn rebase可以拉取该分支的最新内容。

提交代码(git svn dcommit)

这是你的本地git已经可以开始管理整个项目了,可以随意的创建本地的分支来进行代码的开发。开发完成后跟git一样需要先add、commit到本地分支,不同的是没有git svn push这个命令,而是通过git svn dcommit来把修改的代码推到远端svn服务器。dcommit前一定要执行rebase获取最新代码,解决好冲突之后再提交。提交前注意该分支是否对应你要提交的远端服务器地址,不要提交错地址。git svn info --url命令可以获取当前分支对应的svn地址。
需要注意的问题:
当你创建好仓库后,git checkout -b local_branch origin/remote_branch将当前本地分支关联到了远端分支上,当你处于该分支下进行新的checkout时候,你checkout出来的新分支也会自动关联到之前分支对应的远端地址上,所以在执行dcommit前注意好不要混淆了多个本地分支的提交内容。

获取svn仓库最新的分支信息(git svn fetch)

其他人创建的svn的新的分支不会同步到你的本地仓库上面,如果有同事创建了新的branch,你需要使用git svn fetch来获取最新的分支目录信息。

以上就是工作中比较常用的一些简单命令,对于创建svn分支,tag等操作,我还是通过svn的命令完成的,并没有使用git svn命令来操作。当然git svn也是支持的。git svn命令非常丰富。感兴趣可以到git的官方文档学习。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mirt_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值