举例说明
feature
分支在开发团队中如何更好的工做
为减小分支间合并代码时的差别,能够经过建立一个专门用来合并用的feature分支,好比ft-merge
。其余成员按照本身划分的功能模块,创建对应的feature分支,根据好比ft-login
(注册登陆相关功能,开发者张三)、ft-pay
(支付相关功能,开发者李4、王五)。约定天天的同步代码任务:张三负责ft-login
分支的更新,先从ft-merge
pull代码到ft-login
,解决冲突后merge回ft-merge
。李四负责ft-pay
,先让王五提交代码到ft-pay
,而后从ft-merge
pull代码到ft-pay
,解决冲突后,而后merge回ft-merge
。git
成员 | 职责 | 开发分支 |
---|---|---|
刘备 | 组长,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表示组长或负责人),操做执行刘备
相同的平常操做,等到发布版本前决定刘备
主导合并。