4、分支
4.1 概念
在版本控制过程中,使用多个分支同时推进多个不同功能开发。
不使用分支开发:人与人之间协作
使用分支开发:小组和小组之间协作
4.2 应用场景举例
蓝色皮肤界面功能:小组1
用户账号管理功能:小组2
支付功能:小组3
……
4.3 作用
多个功能开发齐头并进同时进行
任何一个分支上功能开发失败,删除即可,不会对其他分支造成影响
4.4 相关目录
trunk
主干
branches
分支
tags
存放项目开发过程中各个里程碑式的代码
4.5 创建相关目录
切换到svn视图
资源库位置→右键→新建→远程文件夹
创建trunk目录
Next,注释
同理,创建分支目录branches、创建tags目录
4.6 创建各个具体分支的目录
切换到java视图,创建新的Maven工程Good,并创建一个Good类,分享到svn服务器端
OK,Good会自动填充
Next,注释
Finish
右键项目,提交(在之前会有一个弹窗提示,确认即可)
接下来,创建分支
SVN视图中,右键branches目录,创建feature_skin目录,
Finish
创建feature_pay目录
Finish
创建hot_fix分支
查看最终结果
4.7 创建代码分支
项目→右键→Team→branch...
切换java视图,右键Good项目
Next,
Next,
Finish(若提示already exists,删除之前创建的feature_pay目录)
创建开发皮肤功能的分支
查看分支创建情况:
4.8 切换分支
项目→右键→Team→Swith...
选择feature_pay分支下的Good,OK
效果:
修改分支,并提交
查看服务器分支:
由此可见,内容已更新。主干分支并没有改变:
在skin分支下添加内容并提交:
4.9 合并分支
将feature_skin分支合并到feature_pay分支上
首先切换到pay分支
右键项目→Team→合并
Next,选中分支
Next,
Finish
产生了冲突
选择最后一项
补充说明:
若存在冲突解决办法,个人建议使用最后一种解决冲突
Mark as conflicted. I will deal wiht it later. --标记冲突,合并到主干解决冲突
Resolve the conflict by using my version of the file. --直接用主干的文件覆盖,分支修改无效
Resolve the conflict by using the incoming of the file. --直接用分支修改覆盖主干,以分支为准
Let me edit the file with conflict markers inserted. --直接编辑冲突,编辑完保存,选择yes保存。
Launch a graphical conflict resolution editor.--直接比对文件,修改冲突,点击保存。选择yes解决冲突
提交
查看服务器端内容
※说明:如果两个分支各自都有新内容,需要合并两次才能够让他们内容一致
分支1:☆☆☆★★★
分支2:☆☆☆○○○
分支1→分支2:
分支1:☆☆☆★★★
分支2:☆☆☆○○○★★★
分支2→分支1:
分支1:☆☆☆★★★○○○
分支2:☆☆☆○○○★★★