1. 程式人生 > >[GitHub]第七講:GitHub issues

[GitHub]第七講:GitHub issues

Github 上的每個專案倉庫,都有三套基礎設定可供使用:一個是通過 Github Pages 機制建立專案網站,後面會介紹的。另外一個就是每個專案都可以開自己的 wiki ,作為專案的知識庫。第三個就是咱們今天的主角,事務卡片( Issues )。很多比較複雜的專案管理軟體會把“報 Bug ”,“提新需求”,“其他討論”,這些專案相關的內容分成不同的板塊來進行,在 Github 這裡,所有的內容就都作為事務卡片來統一管理了。

基本使用

比較詳細的 Issues 功能介紹,可以參考官方的 Issue 指南,今天咱們這裡會撿著一些重要的來說。在 How Github Use Github To Build Github

 這個演講中有 Issues 的使用哲學的一些討論,非常有啟發性的。

到專案主頁,例如 http://github.com/happypeter/coco 頁面上,如何來提一個 Issue 呢?

上面圖中,點選專案主頁右側的 Issues 連結,開啟的頁面中的大大的綠按鈕就是新建 Issue 按鈕,點一下就可以看到下圖所示的介面

如上圖,是一個簡單到不能再簡單的頁面,但是很多時候簡單的確意味著更加的靈活和強大。1處新增標題,2處詳細描述一下,要加圖片?點一下3處的連結就行了。

另外,對於開源專案,任何人都有權利提 Issue 的,有時候我有問題需要跟專案擁有者溝通,就可以提一個 Issue 。

支援 Markdown 語法

在新建 Issue 的介面上可以看到 Markdown Supported (支援 Markdown)的連結,點開,可以看到一篇詳細的 Markdown 介紹文件。

Markdown 是一種標記性語言,通過很簡單的標註就可以表示出文字的格式,這樣在評論框中寫 markdown ,點發布評論按鈕就可以轉換成美觀的 html 來顯示了。下面來演示一下它的主要幾個功能 。

可以用 # text 來把 text 變成一級標題,也就是 h1 格式。用 **text** 表示粗體。*text* 表示斜體。

引用內容用 > 打頭就可以了,如下

> 失敗只有一種就是半途而廢。

無序列表用

* 第一項
* 第二項
* 第三項

也可以來插入程式碼塊,支援語法高亮。例如,可以像下面這樣為 HTML 程式碼新增語法高亮:

```html
<!DOCTYPE html>
<html>
<head>
  <title>hello</title>
</head>
<body>
  <a href="index.html">HOME</a>
</body>
</html>
```

釋出後顯示效果如下:

另外也可以插入圖片和連結等其他格式。

Issue 中的一些其他小技巧

還有幾個小技巧也非常的能提高工作效率。

第一個,快速引用。Issue 這裡是沒有 reply 按鈕的,如果你想回答具體某個問題,可以用滑鼠選中那段話,然後,敲 r 。 這樣這段話就自動出現在你的評論框中了。

第二個,拉別人進來討論。如果你在評論框中輸入 @happypeter 那麼不管我是不是你當然專案的參與者,我都會收到通知來進來參加討論。實際中發現這個用的是非常的多。

第三個,用版本留言關閉 Issue。如果有人給我的專案提了個 Bug,在一個編號為20的 Issue (後面簡寫為 Issue#20) 裡。那我寫幾行程式碼修復這個 Bug 之後,在客戶端作版本時,只要在版本留言裡面寫 fix #20 這樣的字樣,這個版本同步到 Github 上之後,這個 Issue#20 就自動關閉了。

第四個,如果我在當前 Issue#10 的評論框中寫 #20 就可以自動連結到 Issue#20 了。同時 Issue#20 那邊也會顯示出 Issue#10 。這種指向和關聯的功能在實用中是非常重要的。

另外,Issue 上也可以新增標籤,設定 milestone,並且把任務佈置給一個特定的開發者。

總結

前面咱們用過很多 Pull Request 的功能了,其實一個 PR 和一個 Issue 在很多方面都是一樣的,所以 Issue 這裡介紹的大部分功能都可以在 PR 討論中使用。另外,Issue 中一般是放一些臨時性的討論,最終是要被關掉的。如果 Issue 裡面有一些精華的內容,可以拷貝出來貼到 wiki 中,方便大家查閱。