使用场景
以SVN作为本地代码和单位代码仓库的管理工具,以Git作为本地开发的版本管理工具来使用。
使用方式
网上有很多git和svn混用的方式,我这里也是参考了一些网上的文章博客等。简要介绍一下目前我所使用的方式和一些常用操作。
clone项目
git svn clone <svn_repo_url> [project_dir]
通过这种方式可以把svn的项目下载到本地,project_dir作为可选参数,可以指定项目下载的目录名称。
本地开发
本地开发的话,由于不能在SVN上自由创建分支,所以本地开发我通常使用Git来管理自己的开发分支。
SVN项目clone下来后使用的master分支,我以master分支作为SVN的远程最新代码,自己的开发分支统一新建 develop分支上来开发,或者有临时的bugfix分支,或者非版本需求的feature分支。这样可以同时进行多项工作,多项任务互不干扰。
拉取SVN最新代码
// 如果当前在非master分支,stash保存当前代码或者直接提交代码。
git stash
// 切换到master分支拉取SVN最新代码
git checkout master
git svn rebase
// 之后将master分支的代码合并到的开发分支就可以了。
提交代码到SVN
由于开发的时候使用的都是其他分支,master分支作为跟SVN交互的一个主干分支,所以你的代码最终都要merge到master分支上面。
git add .
git commit -m 'comment'
git checkout master
//切换到master分支后直接拉取最新代码
git svn rebase
// 拉取后合并分支
git merge <your_branch>
// 解决冲突后提交到SVN服务器
git svn dcommit
由于SVN是每一次提交都会升一次版本号的。这里提交会把你所有的git提交都记录成对应的svn版本号提交到服务器仓库上。
网友评论