4、分支
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:☆☆☆○○○★★★
原文地址:https://www.cnblogs.com/116970u/p/11377185.html
- JS中控制好this关键字的指向
- 碎片化 | 第四阶段-46-值栈valueStack介绍和原理-视频
- Laravel中运行Gulp任务的利器(一) —— Laravel Elixir简介及入门教程
- 碎片化 | 第四阶段-52-Hibernate特性-视频
- 碎片化 | 第四阶段-53-hibernate持久化session问题解决-视频
- 入门webpack(下)
- 巨头们关注的实时Web:发展与相关技术
- 碎片化 | 第四阶段-54-hibernate-spring整合流程-视频
- OpenDaylight Lithium版本简单应用及流表操作指南
- 碎片化 | 第四阶段-55-OpenSessionInViewFilter组件配置解决session问题-视频
- 入门Webpack(上)
- 碎片化 | 第四阶段-56-ManyToOne和OneToMany映射关系-视频
- 基于网络流量的SDN最短路径转发应用
- 碎片化 | 第四阶段-57-hibernate二级缓存-视频
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- leetcode: explore-strings-33 反转字符串
- 02-leetcode: explore-strings-34 字符串中的第一个唯一字符
- 《操作系统》:理解一些基础概念
- Json与对象相互转换 - alibaba fastjson
- 2020-08-21
- Kubernetes Dashboard 与 LDAP 的集成
- Grafana Loki 简明教程
- 深度学习中7种最优化算法的可视化与理解
- 【基础详解】手磕实现 CNN卷积神经网络!
- 直播间源码android音视频开发
- 批量转化字符编码
- JAR项目部署
- java基础:枚举(你木有见过的船新版本)
- elasticSearch学习(九)
- Linux工具---iptraf 实时地监视网卡流量