|
現(xiàn)階段寫代碼,很大程度上都是依賴于各種開源庫,不管是在 Github 還是 Gitlab ,亦或是其它地方。如何高效地找到我們所需要的合適的庫,成了開發(fā)者必備的一項基本技能。Hillary Nyakundi 在他的文章 《GitHub Search Tips – How to Search Issues, Repos, and More Effectively on GitHub》 中分享了他的經(jīng)驗,我們這里提煉一下分享給大家。 搜索 issues在 Github 上,我們可以使用常見的過濾器、排序和搜索技術(shù)來查找特定的 Issues 和 Pull Requests。大多數(shù)開源庫作者傾向于使用 issues 來標記項目,這使得開發(fā)者可以更容易找到合適的項目。那么我們可以使用以下一些技巧來對 issues 進行搜索。 is:issue is:open label:beginner:這將列出所有具有開放和標記為 beginner 的問題的項目is:issue is:open label:easy:這將列出所有標記為 easy 的未解決問題is:issue is:open label:first-timers-only:這列出了所有歡迎初學(xué)者貢獻的未解決問題。is:issue is:open label:good-first-bug:列出帶有標記為 good-first-bug 的未解決問題的項目,以吸引貢獻者參與其中。is:issue is:open label:'good first issue':這將列出所有帶有標簽 good first issue 的未解決問題,這意味著它適合初學(xué)者入門。is:issue is:open label:starter:這列出了 GitHub 上所有標記為 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 - 這顯示尚未分配給某人的所有未解決問題。
搜索存儲庫默認情況下,我們將在搜索欄中鍵入存儲庫名稱,然后我們會得到一些搜索結(jié)果。但這樣找到確切目標的概率比較低。以下是一些縮小搜索范圍的方法。 按名稱、描述/自述文件查找按這種方式搜索的一個要點是:搜索短語應(yīng)該以 in 限定符開始。如: - 使用
in:name:例如我們想搜索與 Data Science 相關(guān)的信息,就可以使用 Data Science in:name,這將列出 repo 名稱中包含 Data Science 的存儲庫 - 使用
in:description:如果我們想查找具有特定描述的存儲庫,如描述中包含 freeCodeCamp 的 repo,則可以使用 freecodecamp in:description - 使用
in:readme:如果想查找在 README 文件中包含 freeCodeCamp 的 repo,則可以使用 freecodecamp in:readme - 使用
in:topic:如果要查找主題中列出了 freecodecamp 的 repo,則可以使用 freecodecamp in:topic
當然,我們還可以組合多個搜索查詢以進一步縮小搜索范圍。 按 Stars 或 Forks 查找我們還可以根據(jù)項目的 Star 數(shù)和 Fork 數(shù)來搜索存儲庫。這使我們更容易了解該項目的受歡迎程度。如: - 使用
stars:n:如果我們想搜索一個擁有 1000 顆星的 repo,可以使用 stars:1000,這將列出恰好有 1000 顆星的存儲庫。 - 使用
forks:n:如果我們想查找分支少于 100 個的存儲庫,我們的搜索將是:forks:<100。
我們可以使用諸如 <、>、<=、>= & .. 之類的關(guān)系運算符來幫助我們進一步縮小搜索范圍。 按語言查找這種方式可以幫助我們查找特定語言的 repo。如: - 使用
language:LANGUAGE:如果我們想查找用 PHP 編寫的存儲庫,可以使用 language:PHP
按組織名稱查找我們還可以搜索由特定組織維護或創(chuàng)建的存儲庫/項目。為此,我們需要使用關(guān)鍵字 org:... 開始搜索,然后是組織名稱。例如,我們使用 org:freecodecamp,將列出組織名稱匹配 freeCodeCamp 的 repo。 按日期查找如果我們想要基于特定日期的結(jié)果,可以使用以下關(guān)鍵字之一進行搜索:created、updated、merged 和 closed。這些關(guān)鍵字應(yīng)附有 YYYY-MM-DD 格式的日期。如 - 使用
keyword:YYYY-MM-DD :如果我們要搜索所有在 2022-10-01 之后創(chuàng)建的帶有單詞 freeCodeCamp 的存儲庫,則可以使用 freecodecamp created:>2022-10-01
我們還可以使用 <、>、>= 和 <= 來搜索指定日期之后、之前和之后的日期。要在一個范圍內(nèi)搜索,可以使用 ...。 按 License 查找在使用 repo 時,了解 Licenses 也很重要。我們也可以按照 Licenses 來進行查找。如: - 使用
license:LICENSE_KEYWORD:這是搜索具有特定 Licenses 項目的好方法。例如,要使用 MIT 許可證搜索項目,可以使用 license:MIT。
按可見性查找我們還可以根據(jù)存儲庫的可見性進行搜索。在這種情況下,我們可以使用公共或私有。這將分別匹配公共或私有存儲庫中的問題和 PR。如: - 使用
is:public:這將顯示一個公共 repo 的列表。如我們要搜索 freeCodCamp 組織擁有的所有公共存儲庫,可以使用:is:public org:freecodecamp。 - 使用
is:private:這個查詢旨在列出給定搜索查詢下的所有私有存儲庫。
小結(jié)以上就是作者分享的各種 Github 搜索小技巧。我們可以通過組合這些條件來進一步縮小范圍。我們還可以查看 Github 文檔[1] 和 高級 Github 搜索[2] 來了解和體驗更多搜索技巧。 
參考[1] https://docs.github.com/en/search-github/searching-on-github [2] https://github.com/search/advanced?
|