Commit关联
代码托管服务可以将每一次代码提交(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的工作项置于“已解决”状态。
代码托管服务同时支持您在本地、代码托管控制台的两种提交方式来关联工作项,下面分别对这两种方式进行操作说明。
- 只有同是项目、仓库成员的帐号才能进行工作项关联。
- 只有工作项的创建人、指定的修改人、或者在项目中有所有工作项修改权限的帐号(比如“项目经理”)的关联操作才能改变工作项的状态(新建、已解决等)并生成评论记录,“关联结果”为“流转成功”。无权限帐号进行操作时,只会产生关联记录,不会改变工作项的状态,也不会生成评论记录,“关联结果”为“关联成功”。
在本地提交代码并关联工作项
首先您需要在本地具备Git环境,详细请参考Git客户端安装与配置,在可以访问仓库时(已经关联到了对应的远程仓库),可以开始进行以下操作。
在本地的master分支上新建一个文件,将其推送到远程仓库,在推送时-m里使用“fix”关键字去关联工作项task01。
- 本示例直接修改master分支,是为了缩短流程减少杂音让开发者更快的了解本地提交关联工作项的操作和原理。
- 在实际代码开发中,尽量不要直接修改master分支,推荐新建一个分支进行文件操作,操作完后再合并到master分支并将master推送到远程仓库。(这是一种默认规则和良好习惯)
- 在本地仓库文件夹下单击鼠标右键,打开Git Bash客户端。
- 确认远程仓库地址绑定是否成功。
git remote -v #该命令可以查看目前本地仓库所绑定的远程仓库地址。
如下图返回内容中,红线部分是本地仓所关联的远程仓库地址,地址之前是远程仓库在本地的别名。
如果发现绑定的仓库并非需要关联的仓库,或者没有绑定仓库,推荐直接将想绑定的仓库Clone到本地。
Clone成功以后再次执行“git remote -v”查看确认绑定正确即可。
- (上步骤已Clone的仓库可跨过此步)用status命令查看下目前仓库的状态,切换到master分支。
git status #查看当前仓库状态,可以看到目前处于哪个分支、该分支有没有未暂存、未提交、未推送的修改 git checkout master #切换到master分支,如果当前没有处于master分支时使用
- 在本地仓库文件夹下新建一个文件,本示例中将其命名为“fileFor708206208”。
- 在Git Bash中将新建的文件添加到暂存区。
git add fileFor708206208
- 在Git Bash中将本次操作提交。
git commit -m "fix #708206208 Task01" #/本次提交用fix关键字关联了编号为708206208的task01
708206208是task01的编号。
- 在Git Bash将提交的内容推送到关联的代码托管仓库。
git push
如下图为推送成功,不同仓库结构返回会略有不同,只要看到所有步骤都100%、done就是推送成功了,如果推送失败一般是您的密钥问题。
- 验证关联结果。
上述操作完成后,进入工作项列表,找到编号为708206208的工作项,进入查看详情,如下图所示:
在代码托管控制台提交代码并关联工作项
- 进入仓库详情页。
- 新建一个文件,如下图所示,在填写“提交信息”时以fix #708206209开头,其他信息任意即可。
708206209是task02的编号。
- 单击“确定”按钮,此时系统相当于在代码托管仓库上执行了以下操作:
新建文件写入内容 git add . git commit -m "fix #708206209 Task02"
也就是将一个新建的文件进行了一次commit,并通过-m参数中的“fix”关键字关联到了task02工作项。
- 验证。
此时您再去查看task02工作项时,如下图所示: