问题背景:
1项目开发中,定义一个master 分支 用于管理线上版本
2.开发集成分支 dev 每个迭代开发分支
3.业务分支,feature/*.version/xxx,每个开发模块单独一个,为了方便从master分支,撤销某个功能.
问题产生:
master 分支 merge 到本地开发分支,
master 分支上删除了一个class merge 后,本地该class依然存在?
过渡方案:
1.如果公共部分改动不大,手动把master 公共部分修改的代码 拷贝到本地,如果改动较多,只有把dev分支merge到本地.
优点:时间紧迫时,可以快速处理问题.
缺点:本地分支代码被dev分支污染,与我们多feature分支开发原则冲突.
终极解决方案:
1.从代码设计上 每个迭代把 公共部分和业务部分代码分离,本地开发的分支只修改业务部分的代码.
优点:不存在merge master代码之后 公共部分不可用的情况.
缺点:公共部分代码设计要求较高,实践中较难完全分离.