當我還是一個開源貢獻者的初學者時,我最大的挑戰之一是找到正確的項目 / 問題來工作。
在很長一段時間里,我都是依靠互聯網上不同作家的資源 (順便說一句,這些資源很好)。但我一直想找到解決這個問題的方法 —— 一種我可以搜索和跟蹤適合我技能的項目的方法。
讓我們在一件事上達成一致:與谷歌不同,搜索 github 并不容易。但作為一名開發人員,你很有可能每天都要與 GitHub 或 gitlab 進行交互。
現在的問題不是你使用這些版本控制系統的目的,而是你如何使用它們。就像掌握谷歌搜索技能對任何普通互聯網用戶來說都是必不可少的一樣,我相信對于開發人員來說,學習如何有效地搜索 GitHub 也是必不可少的。
在本文中,我們將介紹如何正確搜索 GitHub 的不同技術。你將學習如何進行搜索:
- issues 和 Pull Requests
- Repositories
- Users
- Topics
以及更多。讓我們開始吧。
GitHub 搜索查詢
要想在網上找到某樣東西的詳細信息,你需要有正確的搜索技巧。 GitHub 也一樣 ——— 要找到詳細信息,你可以利用常見的篩選、排序和搜索技術,輕松地找到給定項目的特定 Issues 和 Pull Requests。
盡管你在互聯網上列出了不同項目的多種資源,但當你想自己進行搜索時,主要的問題就來了。如何開始? 你應該使用哪些關鍵字來找到正確的結果?
大多數維護人員傾向于給他們的項目貼上問題標簽,這使得貢獻者更容易找到合適的項目。下面列出了在使用 GitHub 時可能會幫助您的一些技巧。
如何在 GitHub 上搜索問題和提交請求
尋找項目去貢獻的最常見方法之一是通過搜索問題和相關 PR。以下是您可以輕松找到可靠答案的一些技巧:
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 此特定查詢將列出所有已打開并標記為初學者問題的項目。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 這列出了被標記為簡單的所有打開的問題。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 這列出了歡迎首次投稿的所有未解決問題。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 這列出了標記為適合解決的第一個錯誤的未解決問題的項目,以吸引貢獻者對其進行處理。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 這將列出所有未解決的問題,標簽為 “好的第一個問題”,這意味著這是初學者入門的好地方。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 列出所有開放的被標記為 starter 的問題。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 列出所有開放的問題,如果您具備必要的技能,則可以隨時進行處理。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 將列出所有未分配給特定項目的待處理問題。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 很多時候,項目都是用里程碑來跟蹤的。但是,如果您想查找未跟蹤的問題,此搜索查詢將為您列出這些項目。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 這將列出所有未標記的未解決問題。
-
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??– 列出所有未解決的還沒分配給某個人的問題。
如何搜索存儲庫
默認情況下,要進行搜索,你只需在搜索欄中輸入存儲庫名稱即可!你將獲得一些搜索結果。
但你獲得你想要的確切回購的幾率非常低。
讓我們看一下可以縮小搜索范圍的一些方法:
如何通過名稱、描述 / 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:
好在你總是可以使用關系運算符,比如?,?=?以及?..?幫助你進一步縮小搜索范圍。
如何按語言查找
在 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 上的日常活動。希望這將幫助你更容易和有效地使用這個平臺。
原文地址: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
譯文地址: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?