前言,最近要搞的模块,改动比较大,直接和远程svn交互不太现实。摸索一波想了一个思路(实验可行):
远端用svn只负责提交完成某个模块或功能后的版本。
本地用git在master的基础上创建dev分支,dev开发完成后提交到master。
这里git里的master 等同于 svn拉下来的本地代码。
大体流程图
具体操作
一,先从svn的远端仓库检出项目代码
我这里用的TortoiseSVN(小乌龟)【 安装+中文语言包 教程】
二,对刚才检出的代码创建git仓库
1.创建git本地仓库
git init
当出现master表示创建成功。
同时,刚才的目录会出现 .git 文件夹
创建成功后,先不要做其他骚操作,先添加svn和git的忽略文件。不然后面有的玩喽。
2.添加svn 和 git 的忽略文件
1)对 svn 忽略 .git 文件
2)对 git 忽略 .svn 文件
在忽略文件设置好之后,开启提交git仓库的内容
3.将本地代码提交到刚创建的git仓库
添加文件(这里的 有个 . 表示所有文件)
git add .
等待添加完成
添加完成后提交
git commit -m 'first commit'
提交完成后 ,一个同时被git和svn管理的项目就诞生了。
三,创建dev分支
因为是android项目,所以接下来的操作将用Android studio操作(IDEA操作应该类似)
1,IDE配置git管理项目
File 》Setting 然后配置使用git管理
配置好后开始创建dev分支
2,创建dev分支
我之里是 as 3.5 各种选项的名称可能会有差异,但大体意思相同。
step1
step2
可以看到下面有当前的master分支,点击new branch
这样就创建了一个dev分支,并切换到了dev分支
PS:可以通过IDE右下角的提示,看当前是那个分支
四,切换到master或者dev
如图,checkout即可。
PS:切换分支前,一定要提交当前分支的内容到当前分支。否则处理起来很麻烦的。
同理,合并之前,也一定要提交当前分支的内容到当前分支。
五,合并
将dev的内容提交后。
先切换回master,再将dev的内容合并到master。
至此,整个流程已全部完成。
总结:
可以在dev开发当前内容,如果出错,可以很方便的回滚或者跳到某个版本。而不影响master里的内容。
在dev将当前内容开发完成后,将dev的内容合并到master。
最后用svn 提交到远端 就万事大吉了。
拓展
当然拓展玩法还有很多
你也可以将当前git同步到你某个github或者gitlab仓库。
就可以随时随地写代码了。
回到公司后,先从git拉下来,再提交到公司的svn仓库。美滋滋。
就是第一遍配置很麻烦。后期使用还是很方便的。