步骤三:开发代码
代码托管服务提供基于Git的在线代码管理服务,包括代码克隆/提交、分支管理等功能。
由于门店网络查询功能为高优先级Story,本章节将以此功能为例进行介绍如何进行源代码管理与开发。
本样例项目中采用分支来进行代码的开发。首先由开发人员Chris在代码仓库中创建分支,并进行代码开发;然后开发人员Chris在代码仓库中提交分支合并请求,项目经理Maggie评审通过后合并分支至主干。
使用分支管理代码
分支是用来将特性开发并行独立出来的工具。使用分支意味着把工作从开发主线上分离开来,以免影响开发主线。
在创建代码仓库时,会有一个默认分支“master”,即主线。为了保证凤凰商城的稳定运行,需要有一个稳定的持续可用master。因此,项目经理建议:不直接在master分支上进行代码开发,而是统一采用功能分支+合并请求的方式,并且每一个功能分支的代码,必须经过团队的其他成员评审后,才可以进行合并。
- 将master分支设置为受保护分支(本文档中由项目经理Maggie操作)。
- 进入“凤凰商城”项目,单击导航“代码 > 代码托管”,找到代码仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,选择“设置”页签。在导航中单击“策略设置 > 保护分支”。
- 单击“新建保护分支”,参照下表在弹框中完成配置,单击“确定”。
如果页面中已存在保护分支“master”,可单击,根据需要修改保护分支配置。
表1 新建保护分支配置 配置项
配置建议
选择需要保护的分支
选择“master”。
能推送
保持默认配置。
能合并
保持默认配置。
成员
保持默认配置。
- 创建功能分支(本文档中由开发者Chris操作)。
- 进入“凤凰商城”项目,在代码托管页面中找到仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,在“代码”页签中单击“分支”。
- 单击“新建分支”,参照表2输入分支信息,单击“确定”。
修改、提交代码
在迭代规划时将门店查询功能分解为前端展示与后台管理两个task,本节以Task“前端展示 - 添加门店网络菜单”介绍如何使用修改与提交代码。
- 单击导航“工作 > 需求管理”,选择“迭代”页签。
在迭代4中找到Task“前端展示 - 添加门店网络菜单”,将Task的状态修改为“进行中”。
- 单击导航“代码 > 代码托管”,找到仓库“phoenix-sample”。
- 单击仓库名称进入代码仓库,选择“代码”页签。
- 单击文件列表上方的“master”,在下拉列表中选择分支“Feature-Store”。
- 在文件列表中找到“vote/templates/store-network.html”并打开。
- 单击,根据Story添加门店地址,并在页面底部文本框中输入备注信息“添加门店列表”,单击“确定”。
<ul> <li>A分店:E机场1号航站楼出发层靠右直行123米右侧</li> <li>B分店:F区G路456号</li> <li>C分店:H区J街789号</li> <li>D分店:K区L大道K大楼西侧</li> </ul>
- 以同样方法打开并编辑“/vote/templates/index.html”。
在179行添加菜单“门店网络”,输入提交信息“fix #xxxxxx 前端展示 - 添加门店网络菜单”,单击“确定”。
其中“#xxxxxx”是Task“前端展示 - 添加门店网络菜单”的编号,在工作项列表中获取,实践中修改为实际Task的编号。<li class="nav-item"> <a href="store-network" class="nav-link">门店网络</a> </li>
- 单击导航“工作 > 需求管理”,选择“迭代”页签。
在迭代4中找到Task“前端展示 - 添加门店网络菜单”。
- 单击Task名称,在详情页中可看到状态自动变为“已解决”。
- 选择“关联”页签,在“代码提交记录”下可看到一条记录,记录的描述与上一步中输入的提交信息相同。
图1 代码提交记录
检视代码、合并分支
- 开发人员发起合并请求。
开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。
- 进入代码仓库,选择“合并请求”页签,单击“新建合并请求”。
- 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。
- 参照表3编辑合并请求详情。
- 单击“新建合并请求”完成合并请求的创建。
- 项目经理评审并完成代码合入。
本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。
- 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。
- 单击该请求,查看合并请求详情。
- 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。
- 单击“合入”,将分支合入“master”。
如果发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。