skyplay0 2019-06-30
feature
分支在开发团队中如何更好的工作为减少分支间合并代码时的差异,可以通过创建一个专门用来合并用的feature分支,比如ft-merge
。其他成员按照自己划分的功能模块,建立对应的feature分支,根据比如ft-login
(注册登录相关功能,开发者张三)、ft-pay
(支付相关功能,开发者李四、王五)。约定每天的同步代码任务:张三负责ft-login
分支的更新,先从ft-merge
pull代码到ft-login
,解决冲突后merge回ft-merge
。李四负责ft-pay
,先让王五提交代码到ft-pay
,然后从ft-merge
pull代码到ft-pay
,解决冲突后,然后merge回ft-merge
。
成员 | 职责 | 开发分支 |
---|---|---|
刘备 | 组长,git 分支管理 | feature/ft-v20-merge,feature/hotfix-* |
关羽 | 模块责任人,登录注册 | feature/ft-login |
赵云 | 模块责任人,支付模块(支付宝渠道)开发,当前分支代码同步 | feature/ft-pay |
张飞 | 支付模块(微信渠道)开发 | feature/ft-pay |
魏延 | 支付模块(银联渠道)开发 | feature/ft-pay |
黄忠 | 支付模块(支付网关)开发 | feature/ft-pay |
刘备
初始化feature分支:
关羽
、张飞
、赵云
检出自己负责的分支;关羽
每天上班时 pull ft-v20-merge
分支,下班时 merge 到 ft-v20-merge
;张飞
、魏延
、黄忠
每天上班时 pull ft-pay
分支,下班时 push (这里是 push) 到 ft-pay
;赵云
每天上班时 pull ft-v20-merge
分支,下班时 merge 到 ft-v20-merge
;刘备
每天上班时 检查 ft-v20-merge
分支分合并记录,同时review代码;刘备
接到线上v1.0 的bug报告,需要修复一个样式问题, 通过SourceTree git-flow 工作流工具“新建修复补丁”,自动从master
检出修复分支 hotfix/hf-style
,进行代码修改,测试通过后完成 “修复补丁”生命周期,hf-style
分支被合并回develop
分支,并将develop
分支合并到ft-v20-merge
;关羽
和赵云
第二天上班时,同步代码,将刘备
提交的bug修复内容合并到自己的 feature 分支。v2.0
版本提测前, 刘备
确认各开发者代码全部提交,在ft-v20-merge
构建提测版本。所有成员跟踪及修复测试bug,完成测试阶段。刘备
通过 SourceTree git-flow 选项“完成功能”,将自动合并ft-v20-merge
到develop
。刘备
通过 SourceTree git-flow 选项“新建版本”,将自动从develop
检出release/r-v2.0
(名称自己定义),对版本号等信息等作一些微调后,通过 SourceTree git-flow 选项“完成版本”,自动合并当前分支至master
。流程回放
刘备
作为开发组长,可以每天检查代码提交情况。关羽
、赵云
作为功能模块负责人,对合并给到刘备
的ft-v20-merge
代码负责。张飞
、魏延
、黄忠
作为开发者,不用去关注自己分支和develop
分支差异,只需关注每天pull时可能发生的冲突。刘备
作为开发组长,负责线上BUG的修复,合并 hotfix 到 master ,发布修复版本,并将修复代码‘同步’给开发成员。feature-xxx
分支直接merge回develop
分支改为只由feature-v20-merge
merge 回develop
分支,develop
合并的质量可以更好地控制。曹操
负责的开发队伍加入,只需增加ft-v20-merge-cc
(cc表示组长或负责人),操作执行刘备
相同的日常操作,等到发布版本前决定刘备
主导合并。