github issue 搜索_GitHub中Issue的使用

在软件开发过程中,开发者们为了跟踪BUG及进行软件相关讨论,进而方便管理,创建了Issue。管理Issue的系统称为BTS(Bug Tracking System,Bug跟踪系统)。当今具有代表性的BTS有Redmine、Trac、BugZilla等。

GitHub自身也加入了BTS的功能。在GitHub上,可以将它作为软件开发者之间的交流工具,多多加以利用。遇到下面几种情况时,各位就可以使用这个功能。

发现软件的BUG并报告

有事想向作者询问、探讨

事先列出今后准备实施的任务

Issue除BUG管理之外还有许多其他用途。在软件开发者圈子中,将Issue用于多种用途的情况已经司空见惯。作为GitHub的功能之一,我们来学习Issue的一些简单用法。

简洁且表现力丰富的描述方法

GitHub的Issue及评论可以使用GFM(Github Flavored Markdown)语法进行描述,从而获得丰富的表现力。比如像下图1那样描述,然后点击Preview,就可以看到图2中那种标记后的效果。

1.png

注意:“#”和后面的文字之间要有一个空格,否则无效

2.png

在文本框的下面可以找到GFM语法样式相关帮助的链接

3.png

1. 语法高亮

假设我们像下面这样,先指定语言再描述代码。

```js

var viewName = function(userName){

alert("你好," + userName +",欢迎光临!");

}

``` ```

以上JavaScript代码

这样一来,代码就会自动如图3所示被添加语法高亮,变得直观易读。

![4.0.png](http://upload-images.jianshu.io/upload_images/68937-45eada00c19bca1f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###2. 添加图片

添加图片也十分简单,只需要将图片拖拽到文本框中便可以粘贴图片。

###3. 添加标签以便整理

Issue可以通过添加标签(Label)来进行整理。添加标签后,Issue的标题后面就会显示标签(图4)。点击标签,还可以只显示该类标签的Issue,GitHub默认给我们设定了几个标签类型。

![4.png](http://upload-images.jianshu.io/upload_images/68937-475f9810afe1f718.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###4. 添加里程碑以便管理

处标签外,还可以通告添加里程碑来管理Issue。通过图5可以看出,项目距离下一个版本还有12个Issue需要实施,整体的14%已经实施完毕并Close。从这里的链接我们可以看出剩余的Issue。

![5.png](http://upload-images.jianshu.io/upload_images/68937-c68505fbfea9b383.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

注意:在添加Issue时常会看到图5中这种贡献规范的链接。改仓库的根目录下添加CONTRIBUTING.md文件后该链接就会显示出来。

![6.png](http://upload-images.jianshu.io/upload_images/68937-76af86365c58a6d6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

规范的内容一般包括报告时Issue的描述方法、Pull Request时的规则或要求、许可证的相关信息等。为了在开源项目开发中能与其他人和谐相处,请务必在贡献之前仔细阅读这些规则。

###5. Tasklist语法

我们使用GFM的一项独有功能,那就是Tasklist(任务列表)语法。首先试着按下面的格式进行描述。

本月要做的任务

[x] 完成部署工具的设置

[ ] 博客文章更新

[ ] 实现抽奖功能

这样一来,这段文字就会呗标记成复选框列表的样式。这个复选框列表可以直接勾选或者取消,不必打开Issue的编辑页面重新编辑,十分方便。

![7.png](http://upload-images.jianshu.io/upload_images/68937-8aa1c37326c66970.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

通过提交信息操作Issue

================================

在GitHub上,只要按照特定的格式描述提交信息,就可以像一般BTS带有的功能那样对Issue进行操作。

###Close Issue

如果一个处于Open状态的Issue已经处理完毕,只要在该提交中以下列任意一种格式描述提交信息,对应的Issue就会被Close。

+ fix #24

+ fixes #24

+ fixed #24

+ close #24

+ closes #24

+ closed #24

+ resolve #24

+ resolves #24

+ resolved #24

利用这个方法,每次提交并Push之后,就不必再大费周章地到GitHub的Issue中寻找相应的Issue手动Close,省去了不少麻烦。像这样,只要按照特定的格式描述提交信息,Github就会自动识别并处理,很多GitHub之外的BTS也实现了这一功能。

******************************************

文章首发于我的博客[https://dunizb.com](//dunizb.com),转载请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值