當我還是一個開源貢獻者的初學者時,我最大的挑戰之一是找到正確的專案 / 問題來工作。
在很長一段時間裡,我都是依靠網際網路上不同作家的資源 (順便說一句,這些資源很好)。但我一直想找到解決這個問題的方法 —— 一種我可以搜尋和跟蹤適合我技能的專案的方法。
讓我們在一件事上達成一致:與谷歌不同,搜尋 GitHub 並不容易。但作為一名開發人員,你很有可能每天都要與 GitHub 或 Gitlab 進行互動。
現在的問題不是你使用這些版本控制系統的目的,而是你如何使用它們。就像掌握谷歌搜尋技能對任何普通網際網路使用者來說都是必不可少的一樣,我相信對於開發人員來說,學習如何有效地搜尋 GitHub 也是必不可少的。
在本文中,我們將介紹如何正確搜尋 GitHub 的不同技術。你將學習如何進行搜尋:
- Issues 和 Pull Requests
- Repositories
- Users
- Topics
以及更多。讓我們開始吧。
GitHub 搜尋查詢
要想在網上找到某樣東西的詳細資訊,你需要有正確的搜尋技巧。 GitHub 也一樣 ——— 要找到詳細資訊,你可以利用常見的篩選、排序和搜尋技術,輕鬆地找到給定專案的特定 Issues 和 Pull Requests。
儘管你在網際網路上列出了不同專案的多種資源,但當你想自己進行搜尋時,主要的問題就來了。如何開始? 你應該使用哪些關鍵字來找到正確的結果?
大多數維護人員傾向於給他們的專案貼上問題標籤,這使得貢獻者更容易找到合適的專案。下面列出了在使用 GitHub
時可能會幫助您的一些技巧。
如何在 GitHub 上搜尋問題和提交請求
尋找專案去貢獻的最常見方法之一是通過搜尋問題和相關 PR。以下是您可以輕鬆找到可靠答案的一些技巧:
is:issue is:open label:beginner - 此特定查詢將列出所有已開啟並標記為初學者問題的專案。
is:issue is:open label:easy - 這列出了被標記為簡單的所有開啟的問題。
is:issue is:open label:first-timers-only - 這列出了歡迎首次投稿的所有未解決問題。
is:issue is:open label:good-first-bug - 這列出了標記為適合解決的第一個錯誤的未解決問題的專案,以吸引貢獻者對其進行處理。
is:issue is:open label:"good first issue" - 這將列出所有未解決的問題,標籤為 "好的第一個問題",這意味著這是初學者入門的好地方。
is:issue is:open label:starter - 列出所有開放的被標記為
starter
的問題。is:issue is:open label:up-for-grabs - 列出所有開放的問題,如果您具備必要的技能,則可以隨時進行處理。
no:project type:issue is:open - 將列出所有未分配給特定專案的待處理問題。
no:milestone type:issue is:open - 很多時候,專案都是用里程碑來跟蹤的。但是,如果您想查詢未跟蹤的問題,此搜尋查詢將為您列出這些專案。
no:label type:issue is:open - 這將列出所有未標記的未解決問題。
is:issue is:open no:assignee - 列出所有未解決的還沒分配給某個人的問題。
如何搜尋儲存庫
預設情況下,要進行搜尋,你只需在搜尋欄中輸入儲存庫名稱即可!你將獲得一些搜尋結果。
但你獲得你想要的確切回購的機率非常低。
讓我們看一下可以縮小搜尋範圍的一些方法:
如何通過名稱、描述 / README 查詢
按讀我檔案的名稱和描述進行搜尋時需要注意的一點是,搜尋短語應以 in
限定符開頭。這使得搜尋 「內部」 你要查詢的內容成為可能。
範例
使用
in:name
。比方說,你正在尋找資源,以瞭解更多關於資料科學的資訊。在這種情況下,你可以使用Data Science in:name
命令,它將列出倉庫名稱中含有 Data Science 的倉庫。使用
in:description
。如果你想找到具有特定描述的倉庫,例如,倉庫的描述中包含 「freeCodeCamp」 一詞,我們的搜尋將是:freecodecamp in:description
使用
in:readme
。你用它來搜尋一個檔案的 README 中的某一短語。如果我們想找到 README 中包含 freecodecamp 這個詞的倉庫,我們的搜尋將是:freecodecamp in:readme
.使用
in:topic
。你用它來查詢某個短語或單詞是否被標註在主題中。例如,要找到所有在主題中列出 freecodecamp 的倉庫,我們的搜尋將是:freecodecamp in:topic
你還可以組合多個搜尋查詢以進一步縮小搜尋範圍。
怎樣根據 Stars, Forks 查詢
你還可以根據專案有多少 Stars 和 Forks 來搜尋儲存庫。這讓你更容易知道這個專案有多受歡迎。
例子
使用
stars:n
。如果你搜尋的倉庫有 1000 Star,那麼你的搜尋查詢將是stars:1000
。這將列出擁有 1000 Star 的儲存庫。使用
forks:n
。這指定了儲存庫應該擁有的 Fork 數量。如果你想找到 Fork 少於 100 個的倉庫,你的搜尋將是:forks:<100
。
好在你總是可以使用關係運算子,比如 <
, >
, <=
, >=
以及 ..
幫助你進一步縮小搜尋範圍。
如何按語言查詢
在 GitHub 上搜尋的另一個很酷的方法是按語言搜尋。這可以幫助你過濾出特定語言的倉庫。
範例:
- 使用
language:LANGUAGE
。例如,如果你想找到用 PHP 編寫的倉庫,你的搜尋將是:language:PHP
如何按組織名稱查詢
你也可以搜尋由一個特定組織維護或建立的倉庫 / 專案。為此,你需要用關鍵詞 org:...
來開始你的搜尋,然後是組織名稱。
例如,如果你搜尋 org:freecodecamp
,它將列出與 freeCodeCamp 相匹配的倉庫。
如何按日期查詢
如果你希望你的結果基於一個特定的日期,你可以使用這些關鍵詞之一進行搜尋:created
, updated
, merged
和 closed
。這些關鍵詞應該伴隨著格式為 YYYY-MM-DD
的日期一起使用。
範例:
- 使用
keyword:YYYY-MM-DD
。舉個例子,我們想搜尋所有在 2022-10-01 之後建立的帶有 freeCodeCamp 這個詞的倉庫。那麼我們的搜尋將是:freecodecamp created:>2022-10-01
你也可以使用 <
, >
, >=
和 <=
來搜尋指定日期之後、之前和指定日期的日期。要在一個範圍內搜尋,你可以使用...
.
如何通過許可證查詢
當你在尋找一個可以貢獻的專案時,許可證是非常重要的。不同的許可證對貢獻者可以做什麼或不可以做什麼給予不同的權利。
為了使你更容易找到有正確許可證的專案,你需要對許可證有一個很好的瞭解。你可以在這裡閱讀更多關於它們的資訊。
範例:
- 使用
license:LICENSE_KEYWORD
。這是一個搜尋具有特定許可證的專案的好方法。例如,要搜尋具有 MIT 許可證的專案,你可以使用license:MIT
.
如何通過可見度查詢
你也可以根據倉庫的可見度進行搜尋。在這種情況下,你可以使用公有或私有。這將分別匹配公共或私有儲存庫中的問題和 PR 。
範例:
- 使用
is:public
。這將顯示一個公共儲存庫列表。讓我們舉一個例子,我們希望搜尋 freeCodCamp 擁有的所有公共儲存庫。那我們的搜尋就會:is:public org:freecodecamp
。 - 使用
is:private
。該查詢旨在列出給定搜尋查詢下的所有私有儲存庫。
結論
儘管我們在這裡介紹了許多搜尋查詢,你仍然可以通過將多個引數組合在一起來進一步縮小搜尋範圍。
有關更多資源和更多搜尋引數,你可以查閱 GitHub 檔案或使用高階 GitHub 搜尋。這些方法總能派上用場,因為它們提供了更多的過濾選項。
你可以使用大量的搜尋引數來簡化你在 GitHub 上的日常活動。希望這將幫助你更容易和有效地使用這個平臺。