skyplay0 2019-06-30
feature分支在开发团队中如何更好的工作为减少分支间合并代码时的差异,可以通过创建一个专门用来合并用的feature分支,比如ft-merge。其他成员按照自己划分的功能模块,建立对应的feature分支,根据比如ft-login(注册登录相关功能,开发者张三)、ft-pay(支付相关功能,开发者李四、王五)。约定每天的同步代码任务:张三负责ft-login分支的更新,先从ft-mergepull代码到ft-login,解决冲突后merge回ft-merge。李四负责ft-pay,先让王五提交代码到ft-pay,然后从ft-mergepull代码到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表示组长或负责人),操作执行刘备相同的日常操作,等到发布版本前决定刘备主导合并。