﻿# 關於 GitHub 議題追蹤 ( Issue Tracker ) 的關鍵字搜尋技巧

我們有越來越多的案子開始依賴 GitHub 幫我們做版本控制與議題追蹤，我則是越用越上癮，不但自己公司用，連客戶公司我也都強烈推薦使用，而且真正用上手且懂得箇中奧妙的人，還真的會愛不釋手。最近有個案子累計有將近 600 個 Issues 在 GitHub 上面，參與專案人數有十幾二十人，為了讓大家能找到相關的議題，學會適當的分類與篩選非常重要，今天我就要來分享一個在 GitHub 裡面做**關鍵字搜尋**的小技巧，這對 Issues 比較多的團隊來說，學會如何聰明的搜尋，是非常重要的一件事。

如下圖示，是 GitHub 的 Issues 介面，在該介面最上方就有個「搜尋框」，可以讓你輸入關鍵字：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/424a3314cb96999181f3-SNAGHTMLf4ecfd2.png)

不過，我們在 GitHub 上面管理的專案，有區分不同的 Milestones、不同的 Labels、還會指派 Issues 給特定人，要能順利找出那些你想找到的 Issues，確實需要一些技巧。

我想基本的切換 Milestones、點選 Labels 進行篩選、顯示指派給自己的 Issues，應該不太需要特別說明，從網頁上就能順利操作，而我要講的是我不說、你不查，就不會知道的技巧。

以下我們直接以 jQuery Mobile 在 GitHub 上的專案來做解說：

-   [**https://github.com/jquery/jquery-mobile/issues**](https://github.com/jquery/jquery-mobile/issues "https://github.com/jquery/jquery-mobile/issues")

  
  
**技巧 1：找出特定人建立的 Issues**

找出所有由 **arschmitz** 建立的 Issues，有一個直接改網址的方法，請參考以下說明。

-   先點選 **Created by you** 篩選出自己的 Issues  
    ![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/83b7978a4dd5d870a259-image_2444.png)  
    
-   然後直接在網址列換上要篩選的人的 GitHub 帳號即可  
    ![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/1641f21f38364df7c535-image_2445.png)  
      
    

**技巧 2：找出指派給特定人的 Issues**

找出所有指派給 **arschmitz** 的 Issues，有一個直接改網址的方法，請參考以下說明。

-   先點選 **Created by you** 篩選出自己的 Issues  
    ![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/665ddd0c37702b71c383-image_2446.png)  
    
-   直接在網址列置換兩段文字，一段是把 **created\_by** 換成 **assigned**，另一段換成特定人的帳號![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0786aecacf284dc9eb38-image_2447.png)  
      
    

**技巧 3：搜尋關鍵字外加目前為 Open 或 Closed 狀態的 Issues**

在 GitHub Issues 用關鍵字搜尋，預設會搜尋該專案下所有 Issues，不會區分 Milestone、Labels 或 Issues 的狀態 ( Open / Closed )，如果要特別再篩選出特定關鍵字搜尋結果的 Issues 狀態，可以加入以下指令：

-   state:open    ( 僅顯示狀態為 Open 的 Issues )
-   state:closed  ( 僅顯示狀態為 Closed 的 Issues )

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b150c93198a97fe3fc08-image_2448.png)

搜尋結果如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/228e175f8fa56dda3c86-image_2449.png)  
  

**技巧 4：搜尋關鍵字外加限定在某個 Milestone 的 Issues**

在 GitHub Issues 用關鍵字搜尋，預設不會區分 Milestone，要限定特定 Milestone 的指令如下：

-   milestone:none    ( 限定顯示 Issues with no milestone 的 Issues )
-   milestone:26      ( 限定顯示 Milestone 編號為 26 的 Issues )

我們要怎樣查詢特定 milestone 編號為何呢？請參考下圖，先切換 Milestone，從網址列上就看的出來：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2a43eb75341c714fd2ed-image_2450.png)  
  

**技巧 5：搜尋關鍵字外加限定特定 Labels 的 Issues**

在 GitHub Issues 用關鍵字搜尋，預設不會區分 Labels，要限定特定 Labels 的指令如下：

-   label:標籤名稱                ( 限定顯示特定標籤的 Issues )
-   label:"含有空白的標籤名稱"    ( 如果標籤包含空白字元，記得前後加上雙引號 )

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/1e8200b2899048b7aee8-image_2451.png)  
  

**技巧 6：搜尋關鍵字外加特定建立者的 Issues**

在 GitHub Issues 用關鍵字搜尋，預設不會區分 Issues 的建立人，要限定特定建立人指令如下：

-   author:帳號

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d1fe44cc3e5da1f49e28-image_2452.png)  
  

**技巧 7：搜尋關鍵字外加有 Tag 特定人的 Issues**

我們在 GitHub Issues 可以用 *@Username* 來 Tag 特定人，被 Tag 的人會收到通知，但如果你想透過搜尋的方式找到特定人被 Tag 過的 Issues，就可以用以下指令進行搜尋：

-   mentions:帳號

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2142860e8aea1302c877-image_2453.png)

以下這個就是被 Tag 的人：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9b827b1ca2eb29731fd1-image_2454.png)  
  

**技巧 8：搜尋關鍵字外加有被指派特定人的 Issues**

在 GitHub Issues 要篩選出被指派給特定人的 Issues 可以用以下指令：

-   assignee:帳號

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9dcd4cd771eeb49f6e30-image_2455.png)  
  

**技巧 9：搜尋關鍵字外加特定建立期間的 Issues**

在 GitHub Issues 要篩選出特定建立期間的 Issues 可以用以下指令：

-   created:2014-04-01     ( 限定顯示就是 2014/4/1 這天建立的 Issues )
-   created:>2014-04-01    ( 限定顯示從 2014/4/1 以後建立的 Issues，包含這個日期 )
-   created:<2014-04-01    ( 限定顯示從 2014/4/1 以前建立的 Issues，不含這個日期 )  
    **注意:** 你不能同時下兩個 created 指令，同名的指令，GitHub 會以後面那個條件為主。

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/468f511a38202fd29d9a-image_2456.png)  
  

**技巧 10：搜尋關鍵字外加特定更新期間的 Issues**

在 GitHub Issues 要篩選出特定更新期間的 Issues 可以用以下指令：

-   updated:2014-04-08     ( 此種搜尋指令搜尋結果不太精準，建議不要用 )
-   updated:>2014-04-08    ( 限定顯示從 2014/4/8 以後更新過的 Issues，包含這個日期 )
-   updated:<2014-04-08    ( 限定顯示從 2014/4/8 以前更新過的 Issues，不含這個日期 )  
    **注意:** 你不能同時下兩個 updated 指令，同名的指令，GitHub 會以後面那個條件為主。

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/948315631f50558db2fc-image_2457.png)  
  

**技巧 11：搜尋關鍵字外加特定 Issues 的評論數大於、小於或等於一定數量的**

在 GitHub Issues 要篩選出被指派給特定人的 Issues 可以用以下指令：

-   comments:0     ( 限定顯示沒有任何評論或留言的 Issues )
-   comments:>10   ( 限定顯示評論數量大於 10 項的 Issues )
-   comments:<3    ( 限定顯示評論數量小於 3 項的 Issues )

如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/e3d158a2d0fa8cd3e466-image_2458.png)  
  

更多完整的搜尋技巧，各位可以繼續閱讀 [Searching issues](https://help.github.com/articles/searching-issues) 官方文件。  
  
  
**相關連結**

-   [Searching issues – GitHub](https://help.github.com/articles/searching-issues)
-   [Global Issue Search – GitHub](https://github.com/blog/1408-global-issue-search)
