更新时间:2023-07-25 GMT+08:00

关联工作项

代码托管服务可以将每一次代码提交(commit)关联到项目管理的工作项中。

  • 关联工作项可以帮助开发者精确记录每一次修复bug、提交新特性时所对应工作任务。
  • 关联工作项可以帮助项目管理者查看每一个需求、bug修复时,所涉及修改内容的提交人、具体提交内容等信息。

工作项:项目管理中对工作内容的跟踪方法之一,通常有一个唯一的编号和描述信息,工作项可以是需求、缺陷和任务,在项目管理服务中,工作项是一种可以被可视化管理的工作内容清单。

提交(commit):可以将工作区的文件操作进行提交保存,有且不限于新建、编辑、删除的操作,其参数 -m 是必须的,后面跟的是提交信息。其应用格式如下:

git commit -m <本次的提交信息>

在代码托管控制台中,对文件的任何操作在保存时都会要求必须填写一个提交信息(或备注、每个页面用词不一样)才能保存,可以理解为控制台的每一次保存都是一次commit操作,其必填的提交信息对应了commit命令的-m内容

代码托管服务以从-m(提交信息)中捕获关键字的方式来自动关联工作项,最常用的是“fix”关键字,这也是控制台操作提示中推荐的关键字,其使用时需要满足如下格式,才能被识别:

git commit -m "fix #工作项的编号 本次提交的信息"

在工作项关联成功时,系统会根据配置的代码提交流转状态来自动变更工作项的状态,默认情况下“fix”关键字会将工作项置于“已解决”状态。

例如下面的这次提交:

git commit -m "fix #123456 修复了这个bug"

当其被推送到代码托管仓库时,会将编号为123456的工作项置于“已解决”状态。

代码托管服务同时支持您在本地、代码托管控制台的两种提交方式来关联工作项,下面分别对这两种方式进行操作说明。

假设已完成项目创建(如果没有,您可参考项目管理中新建项目操作),那么首先需要配置代码提交流转状态(可选)新建工作项、在项目下新建一个代码仓库

  • 只有同是项目、仓库成员的帐号才能进行工作项关联。
  • 只有工作项的创建人、指定的修改人、或者在项目中有所有工作项修改权限的帐号(比如“项目经理”)的关联操作才能改变工作项的状态(新建、已解决等)并生成评论记录,此时如下图的关联记录中,“关联结果”“流转成功”的。否则只会产生关联记录,不会改变工作项的状态,也不会生成评论记录,并且“关联结果”“关联成功”

配置代码提交流转状态(可选)

默认状态下您可以在提交备注中使用fix关键字将目标状态流转为已解决状态。

本节主要帮助用户理解工作项关联代码提交记录的工作原理与进阶设置,如果您只需要使用默认设置,请跳过此节。

在项目设置中,可以对不同的工作项类型(Epic、Feature、Story、Task、Bug)分别设置三个预设的提交信息关键字(fix、close、resolve),对于每个关键字可绑定目标状态(如:已解决、已关闭等,工作项状态也是可以自定义的)。

代码提交流转状态的默认设置如下:

  • fix关键字绑定在“已解决”目标状态(默认开启使用)。
  • close关键字绑定在“已关闭”目标状态(默认不开启使用)。
  • resolve关键字绑定在“已解决”目标状态(默认开启使用)。

只有项目经理或其它拥有项目设置权限的角色可以修改此配置内容。

下面以将Task工作项类型中的close关键字绑定在“已拒绝”为例,进行一次操作演示。

  1. 进入项目。
  2. 参照下图,在“设置 > 项目设置”中找到Task工作项类型所对应的代码提交流转状态。

  3. 单击close的“目标状态”,将其设定为“已拒绝”,并将其的“是否使用”设置为

    此时将自动保存设置状态。

设置完成后,当提交代码时可以在提交备注中用close关键字去改变Task类工作项的状态为“已拒绝”。

示例如下:

git commit -m "close #Task的编号 本次提交的信息"

新建工作项

为了分别体验在本地提交代码并关联工作项在代码托管控制台提交代码并关联工作项,重复以下步骤,分别创建两个task。

  1. 进入项目。
  2. 按照 工作 > 工作项路径“进入工作项管理页面”
  3. 单击“新建”按钮,在弹出的下拉框中选择“Task”,即进入新建工作项页面。
  4. 填写一个标题即可单击“保存”按钮进行保存。

此时系统会自动跳转回“工作项管理页面”,可以查看到工作项的ID(编号),且状态都是“新建”

本示例中:

  • task01的编号是7370149。
  • task02的编号是7370151。

获取工作项目编号的方式为项目工作 > 工作项

在本地提交代码并关联工作项

首先您需要在本地具备Git环境,详细请参考Git客户端安装与配置,在可以访问仓库时(已经关联到了对应的远程仓库),可以开始进行以下操作。

在本地的master分支上新建一个文件,将其推送到远程仓库,在推送时-m里使用“fix”关键字去关联工作项task01。

  • 本示例直接修改master分支,是为了缩短流程减少杂音让开发者更快的了解本地提交关联工作项的操作和原理。
  • 在实际代码开发中,尽量不要直接修改master分支,推荐新建一个分支进行文件操作,操作完后再合并到master分支并将master推送到远程仓库。(这是一种默认规则和良好习惯)
  1. 在本地仓库文件夹下右键,打开Git Bash。
  2. 确认远程仓库地址绑定是否成功。

    git remote -v          #该命令可以查看目前本地仓库所绑定的远程仓库地址。

    如下图返回内容中,红线部分是本地仓所关联的远程仓库地址,地址之前是远程仓库在本地的别名。

    如果发现绑定的仓库并非需要关联的仓库,或者没有绑定仓库,推荐直接将想绑定的仓库Clone到本地

    Clone成功以后再次执行“git remote -v”查看确认绑定正确即可。

  3. (上步骤已Clone的仓库可跨过此步)用status命令查看下目前仓库的状态,切换到master分支。

    git status             #查看当前仓库状态,可以看到目前处于哪个分支、该分支有没有未暂存、未提交、未推送远端的修改
    git checkout master    #切换到master分支,如果当前没有处于master分支时使用

  4. 在本地仓库文件夹下新建一个文件,本示例中将其命名为“fileFor7370149”
  5. 在Git Bash中将新建的文件添加到暂存区。

    git add fileFor7370149

  6. 在Git Bash中将本次操作提交。

    git commit -m "fix #7370149 Task01"    #/本次提交用fix关键字关联了编号为7370149的task01

  7. 在Git Bash将提交的内容推送到关联的代码托管仓库。

    git push

    如推送成功,不同仓库结构返回会略有不同,只要看到所有步骤都100%、done就是推送成功了,如果推送失败一般是您的密钥问题。

  8. 验证关联结果。

    上述操作完成后,进入工作项列表,找到编号为7370149的工作项,进入查看详情,如下图所示:

    • 其状态已经置于“已解决”
    • 增加了一条关联得代码提交记录,单击提交编号可以前往查看提交详情。
    • 增加了一条自动生成得评论以说明本次工作项关联。

在代码托管控制台提交代码并关联工作项

  1. 进入仓库详情页。
  2. 新建一个文件,如下图所示,在填写“备注”时以fix #7370151开头,其他信息任意即可。

  3. 单击“确定”按钮,此时系统相当于在代码托管仓库上执行了以下操作:

    新建文件写入内容
    git add .
    git commit -m "fix #7370151 Task02"

    也就是将一个新建的文件进行了一次commit,并通过-m参数中的“fix”关键字关联到了task02工作项。

  4. 验证。

    此时您再去查看task02工作项时,如下图所示:

    • 其状态已经置于“已解决”
    • 增加了一条关联得代码提交记录,单击提交编号可以前往查看提交详情。
    • 增加了一条自动生成的评论以说明本次工作项关联。

如何查看代码提交与工作项的关联关系

代码提交记录与工作项之间的关联关系,可以通过如下表所示方法查看。

表1 查看代码提交与工作项的关联关系

场景

操作

“项目管理”控制台,通过工作项查找对应的提交代码

在项目管理中查找目标项目,进入工作项详情,切换到“关联”页签,在页面下方找到“代码提交记录”,可看到工作项关联的代码提交记录,单击记录中的代码仓库节点链接(数字串),即可定位到对应代码。

“代码托管”控制台,通过关联记录,查找对应的工作项

进入目标仓库详情页,选择“关联工作项”页签,可以查看代码提交关联的工作项,单击工作项编号即可跳转到对应工作项详情。