更新时间:2023-12-04 GMT+08:00

步骤三:开发代码

代码托管服务提供基于Git的在线代码管理服务,包括代码克隆/提交、分支管理等功能。

由于门店网络查询功能为高优先级Story,本章节将以此功能为例进行介绍如何进行源代码管理与开发。

本样例项目中采用分支来进行代码的开发。首先由开发人员Chris在代码仓库中创建分支,并进行代码开发;然后开发人员Chris在代码仓库中提交分支合并请求,项目经理Maggie评审通过后合并分支至主干。

使用分支管理代码

分支是用来将特性开发并行独立出来的工具。使用分支意味着把工作从开发主线上分离开来,以免影响开发主线。

在创建代码仓库时,会有一个默认分支“master”,即主线。为了保证凤凰商城的稳定运行,需要有一个稳定的持续可用master。因此,项目经理建议:不直接在master分支上进行代码开发,而是统一采用功能分支+合并请求的方式,并且每一个功能分支的代码,必须经过团队的其他成员评审后,才可以进行合并。

  1. 将master分支设置为受保护分支(本文档中由项目经理Maggie操作)。

    1. 进入“凤凰商城”项目,单击导航代码 > 代码托管,找到代码仓库“phoenix-sample”
    2. 单击仓库名称进入代码仓库,选择“设置”页签。在导航中单击策略设置 > 保护分支
    3. 单击“新建保护分支”,参照下表在弹框中完成配置,单击“确定”保存。
      表1 新建保护分支配置

      配置项

      配置建议

      选择需要保护的分支

      选择“master”

      能推送

      根据需要配置,本文档中保持默认配置。

      能合并

      根据需要配置,本文档中保持默认配置。

      成员

      根据需要勾选“能推送”“能合并”,并在下拉列表中选择成员。

      本文档中保持默认配置。

      若页面中已存在保护分支“master”,可单击,根据需要修改保护分支配置。

  2. 创建功能分支(本文档中由开发者Chris操作)。

    1. 进入“凤凰商城”项目,在代码托管页面中找到仓库“phoenix-sample”
    2. 单击仓库名称进入代码仓库,在“代码”页签中单击“分支”
    3. 单击“新建”,参照表2输入分支信息,单击“确定”保存。
      表2 新建分支

      配置项

      配置建议

      基于

      选择“master”

      分支名称

      输入“Feature-Store”

      关联工作项

      选择“作为用户可以查询所有门店网络”

修改、提交代码

迭代规划时将门店查询功能分解为前端展示与后台管理两个task,本节以Task“前端展示 - 添加门店网络菜单”介绍如何使用修改与提交代码。

  1. 单击导航工作,选择“迭代”页签。

    在迭代4中找到Task“前端展示 - 添加门店网络菜单”,将Task的状态修改为“进行中”

  2. 单击导航代码 > 代码托管,找到仓库“phoenix-sample”
  3. 单击仓库名称进入代码仓库,选择“代码”页签。
  4. 单击文件列表上方的“master”,在下拉列表中选择分支“Feature-Store”
  5. 在文件列表中找到“vote/templates/store-network.html”并打开。
  6. 单击,根据Story添加门店地址,并在页面底部文本框中输入备注信息“添加门店列表”,单击“确定”

    <ul>
    	<li>Branch A: 123 meters to the departure floor, Terminal 1, Airport E</li>
    	<li>Branch B: No. 456, Street G, Area F</li>
    	<li>Branch C: No. 789, Street J, Area H</li>
    	<li>Branch D: West side of Building K, Avenue L, Area K</li>
    </ul>

  7. 以同样方法打开并编辑“/vote/templates/index.html”

    在179行添加菜单“门店网络”,输入提交信息“fix #xxxxxx 前端展示 - 添加门店网络菜单”,单击“确定”

    其中“#xxxxxx”是Task“前端展示 - 添加门店网络菜单”的编号,在工作项列表中获取,实践中修改为实际Task的编号。
    <li class="nav-item"> <a href="store-network" class="nav-link">Store network</a> </li>

  8. 单击导航工作 > 迭代,在迭代4中找到Task“前端展示 - 添加门店网络菜单”

    • 单击Task名称,在详情页中可看到状态自动变为“已解决”
    • 选择“关联”页签,在“代码提交记录”下可看到一条记录,记录的描述与上一步中输入的提交信息相同。
      图1 代码提交记录

检视代码、合并分支

  1. 开发人员发起合并请求。

    开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。

    1. 进入代码仓库,选择“合并请求”页签,单击“新建”
    2. 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”
    3. 参照表3编辑合并请求详情。
      表3 合并请求配置

      配置项

      配置建议

      标题

      输入“添加门店网络列表”

      合并人

      单击,在弹框中勾选“Maggie”,单击“确定”

      审核人

      单击,在弹框中勾选“Maggie”,单击“确定”

    4. 单击“新建合并请求”完成合并请求的创建。

  2. 项目经理评审并完成代码合入。

    本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。

    1. 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。
    2. 单击该请求,查看合并请求详情。
    3. 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。
    4. 单击“合入”,将分支合入“master”

      若发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。