如何使用 GitHub 搜尋及組織存放庫歷程記錄
我們將在此處討論如何使用篩選條件、改動者與交叉連結,以搜尋及組織存放庫歷程記錄。
假設您自己是剛加入大型專案的開發人員。 有人剛剛張貼新問題,報告與 Web 應用程式側邊欄相關的錯誤 (Bug),而您獲派修正此錯誤 (Bug)。 您已經完整閱讀過該報告幾次並了解所述的問題,因此,現在您必須了解如何開始修正。
身為新的小組成員,您還不熟悉程式碼基底。 您也沒有參與規劃討論、程式碼檢閱,或任何其他可為您提供開始實作所需內容的事項。 您必須先取得該背景知識,才能充分判斷正確的修正方法。
搜尋 GitHub
儘管您並未參與導致側邊欄實作的事件,但那些事件中有許多會存留於專案的歷程記錄中。 在專案的存放庫中搜尋「側邊欄」將可作為您的起點。
GitHub 上有兩個可用的搜尋方法:頁面頂端的全域搜尋,以及可在特定存放庫索引標籤上使用的範圍搜尋。 它們會以相同方式支援相同的語法與功能,但有一些主要差異。
全域搜尋
全域搜尋可讓您使用完整的搜尋語法,在 GitHub 上進行全面搜尋。
搜尋結果是全面的,包括從程式碼到問題到 Marketplace (甚至使用者) 的所有內容。 這是在多個結果類型與存放庫中尋找提及重要詞彙的最佳方式。
注意
篩選子句 is:pr
會篩選出問題/提取要求存放區傳回的問題。 某些篩選子句 (例如 is:pr
) 只受到特定搜尋提供者支援,其他搜尋提供者則會予以忽略。 例如,程式碼搜尋提供者不支援該子句,因此,提供者將忽略該子句,並以任一種方式傳回相同的程式碼結果。
在我們的案例中,使用範圍限定在目前存放庫的全域搜尋,是尋找提及「側邊欄」一詞之程式碼與認可的好方式。 您可能也會收到問題與提取要求的命中次數,儘管在全域搜尋結果檢視中進一步篩選並不容易。
若要製作複雜的全域搜尋,請嘗試進階搜尋 \(英文\)。
內容搜尋
內容搜尋適用於某些索引標籤,例如 [問題] 與 [提取要求]。 這些搜尋的範圍是目前的存放庫,而且只會傳回該類型的結果。 此範圍的優點是讓使用者介面能夠公開已知的特定類型篩選,例如作者、標籤、專案等項目。
使用內容搜尋是您在目前存放庫中尋找某個項目時的慣用選項。 在我們的案例中,這是用來尋找提及「側邊欄」之搜尋結果的一種好方式,接著您可以使用篩選下拉式清單輕鬆縮小搜尋範圍。
使用搜尋篩選
使用完整的搜尋語法有無數種搜尋方式。 不過,大部分的搜尋只會使用一些常用篩選。 雖然這些通常可從內容搜尋下拉式清單中取得,但有時直接輸入更方便。
以下是一些範例篩選查詢:
查詢 | 說明 |
---|---|
is:open is:issue assignee:@me |
開啟指派給目前使用者的問題 (@me ) |
is:closed is:pr author:contoso |
已關閉 @contoso 所建立的提取要求 |
is:pr sidebar in:comments |
註解中提及「側邊欄」的提取要求 |
is:open is:issue label:bug -linked:pr |
開啟標示為沒有已連結提取要求之錯誤 (Bug) 的問題 |
請參閱了解搜尋語法
什麼是 git blame?
儘管名稱不吉利,但 git blame
是可顯示檔案認可歷程記錄的命令。 此命令可讓您輕鬆查看哪些人進行哪些變更,以及何時進行。 這可讓您更加容易地追蹤其他已處理某個檔案的人員,以找出其輸入或參與。
注意
某些 Git 系統會將 git praise
的別名設定為 git blame
,以避免發生判斷的含意。
GitHub 中的改動者
GitHub 利用更強大的使用者介面來擴充基本的 git blame
功能。
在我們的案例中,您可能有數種方式可以看到此檢視。 您可能已從全域搜尋找到一些側邊欄程式碼,並已選取 [改動記錄] 選項來查看上一個處理它的人員,或您可能已找到提取要求,並回溯追蹤到與錯誤 (Bug) 描述相關的最後一個認可。 無論您用哪種方式到達此處,改動者檢視是一個針對手邊工作尋找主題專家的有效方式。
交叉連結問題、認可等項目
GitHub 很適合用於共同作業軟體專案的部分原因是,其支援將不同的資訊片段連結在一起。 這其中有些部分會自動發生,例如,當您從分支上的一系列認可建立提取要求時。 其他時候,您可以使用介面,利用下拉式清單選項,手動將提取要求或專案連結至問題。
自動連結的參考
為了讓您更輕鬆地在整個專案中交叉連結不同的項目,GitHub 提供簡短的語法。 例如,如果您留下像是 Duplicate of #8
的註解,GitHub 將會辨識出 #8 是一個問題,並為您建立適當的連結。
如果您貼上認可識別碼的前七個或更多字元,GitHub 也會為您連結該認可。
在我們的案例中,如果有人預先想到留下內容,則這些連結在提高速度方面可能非常有價值。 例如,側邊欄的目前狀態可能有一些與 JavaScript 相依性相關的已知問題。 如果與該相依性相關的問題已在另一個未明確提及「側邊欄」的問題中討論過,那麼就很難找到它。 不過,如果有人預先想到在討論中連結該問題,那麼,現在就能為您節省許多時間。 當您下一次記載問題與提取要求時,請記住這一點。
深入了解自動連結的參考和 URL。
使用 @mention 執行使用者迴圈
除了連結問題和認可,讓其他人與討論產生關聯通常很有助益。 若要這樣做,最簡單的方式是使用 @mention
。 這種提及會通知提及的使用者,讓其可以參與討論。 這也很適合用來識別誰與很久以前解決的問題有關。