github issue 的用法

小结一下GitHub上的issues功能,很有意思。

今天玩了一下gitment,尝试在博客中加上评论功能。

测试gitment的功能之后想删除测试的issue,但发现是删不掉的!!!如同版本提交commits,也是删不掉的。另外,对应issues的每一个操作都会记录下来。
这样的设计应该是有原因的,现在想不明白,以后再探究吧。
今天也大概了解了一下GitHub的API,也挺好玩的。

issues的属性

GitHub中每一个仓库都会有对应的一个issues的功能,issues中可以新建多个issue,每一个issue就像一篇文章,有标题和内容,还有评论。另外,每个issue都有唯一的编号“#n”。 issue可以设置:Opened和Closed两种状态。

issue 还可以有额外的属性:

  • Labels,标签。包括bug、invalid等,可以自定义。表示issue的类型,解决的方式。
  • Milestone,里程碑。通常用来做版本管理,v0.1、v1.0之类的,也可以是任意自定义字符串。一个里程碑对应的所有 issue 都被关闭后,这个里程碑会被自动认为已经达成。
  • Assignee,责任人。指定这个issue由谁负责来解决。

个人如何利用issues的功能?

GitHub 的issue功能,对个人而言,就如同 TODO list

可以把所有想要在下一步完成的工作,如feature 添加bug 修复等,都写成一个个的 issue ,放在上面。既可以作为提醒,也可以统一管理。 另外,每一次 commit 都可以选择性的与某个 issue 关联。比如在 message 中添加 #n,就可以与第 nissue 进行关联。 commit message title, #1 这个提交会作为一个 comment ,出现在编号为1issue 记录中。 如果添加:

1
2
3
4
5
6
fix #n
fixes #n
fixed #n
close #n
closes #n
closed #n

比如

1
commit message title, fix #n

则可以自动关闭第 nissue,即issue的状态从Opened变成了Closed

充分利用这些功能,让每一个 commit 的意义更加明确,可以起到了良好的过程管理作用,使得这个Git库的项目进度更加显然。而且,这也是项目后期,写文档的绝佳素材。

团队如何利用issues的功能?

对团队而言,这就是一个协作系统。

现在,很多大公司的软件研发团队协作,都是通过JIRA来实现的。

目前也流行很多非代码的团队协作,比如teambition、Tower.im、Worktile、trello等。

其实,GitHub 的issues,就是一个轻量级协作系统。它的comment支持GitHub Flavored Markdown,可以进行内容丰富的交流。

Git本身就是分布式的代码版本控制软件,是为了程序员的协作而设计的。而 issues 的 Assignee 功能,就是这个在线协作系统的核心,足以让一群线上的开发者,一起完成一个软件项目。

作为一个路人如何给别人的项目提bug?

用 issues 给别人的项目提 bug。

其他利用?

  • 可以拿来写blog,虽然很丑…也不方便
  • 可以做评论的后端,比如gitment
  • 可以拿来给小组成员交作业,进行项目管理(我的一个同学就是这么搞,感觉很挫…)
  • 更多。。。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器