大家好,我是若川。我持續組織了近一年的源碼共讀活動,感興趣的可以?點此掃碼加我微信?ruochuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。歷史面試系列。另外:目前建有江西|湖南|湖北
籍前端群,可加我微信進群。
世界各地的貢獻者們正在將 freeCodeCamp 的技術教育資源翻譯成不同語言,幫助人們免費學習編程,歡迎你加入教育公益活動:參與 freeCodeCamp 開源社區翻譯協作,幫助全世界人們用母語免費學習編程
當我還是一個開源貢獻的初學者時,我最大的挑戰之一是找到正確的項目/issue 來為其做貢獻。
在很長一段時間里,我依靠互聯網上不同作者創作的資源(順便說一下,這些資源很好)。但我一直想找到一種解決這個問題的方法——一種我可以搜索和跟蹤適合我的技能組合的項目的方法。
讓我們承認一件事:與谷歌不同,在 GitHub 上搜索并不容易。但作為一個開發者,你有可能每天都會與 GitHub 或 GitLab 打交道。
現在的問題不是你用這些版本控制系統做什么,而是你如何使用它們。就像掌握谷歌搜索技巧對任何普通互聯網用戶來說都是必不可少的,我相信對于開發者來說,學會如何有效地在 GitHub 搜索也是至關重要的。
在這篇文章中,我們將看看可以用來正確地在 GitHub 搜索的不同技巧。你將學習如何通過搜索:
問題(issues)和拉取請求(pull requests)
倉庫(repositories)
用戶(users)
主題(topics)
以及更多。讓我們開始吧。
GitHub 搜索查詢
為了在互聯網上找到關于某件事情的詳細信息,你需要有正確的搜索技巧。這在 GitHub 上沒有任何不同——要找到詳細的信息,你可以利用常見的過濾、排序和搜索技術,輕松找到特定項目的 issues 和 pull requests。
即使你能在互聯網上找到許多不同項目的資源,但當你想自己進行搜索時,主要問題就來了:你該如何開始?你應該使用哪些關鍵詞來找到正確的結果?
大多數維護者傾向于用 issues 來標記他們的項目,這使得貢獻者更容易找到合適的項目。下面列出了一些在使用 GitHub 時可能會對你有所幫助的小技巧。
如何在 GitHub 上搜索 issues 和 pull requests
搜索 issues 和相關的 pull requests,是尋找要貢獻的項目的最常見的方法之一。這里有一些技巧,你可以用來輕松找到可靠的答案:
1、is:issue is:open label:beginner
——這個特別的查詢會列出所有具有開放的、并標有 beginner
的 issues 的項目。
2、is:issue is:open label:easy
——這將列出所有被標記為 easy
的開放 issues。
3、is:issue is:open label:first-timers-only
——這將列出所有歡迎第一次做貢獻的人們的開放 issues。
4、is:issue is:open label:good-first-bug
——這將列出帶有 good-first-bug
標簽的開放 issues 的項目,以吸引貢獻者為其工作。
5、is:issue is:open label:"good first issue"
——這將列出所有帶有 good first issue
標簽的開放 issues,意味著它是初學者入門的好地方。
6、is:issue is:open label:starter
——這將列出整個 GitHub 中所有標有 starter
的開放 issues。
7、is:issue is:open label:up-for-grabs
——這將列出開放的 issues,如果你有必要的技能,就可以進行工作。
8、no:project type:issue is:open
——這將列出所有沒有分配給特定項目的開放 issues。
9、no:milestone type:issue is:open
——很多時候,項目是用里程碑來追蹤的。但如果你想找到沒有被跟蹤的 issues,這個搜索查詢將為你列出這些項目。
10、no:label type:issue is:open
——這將列出所有沒有標簽的開放 issues。
11、is:issue is:open no:assignee
——這顯示所有尚未分配給某人的開放 issues。
如何搜索倉庫
默認情況下,要進行搜索,你需要在搜索欄中輸入倉庫的名稱,然后就可以得到一些搜索結果。
但你找到你想要的倉庫的機會非常低。
讓我們看看有什么方法可以縮小搜索范圍:
如何通過名稱、描述/README 查找
當你通過 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 查找
你也可以根據項目的 star 和 fork 的數量來搜索倉庫。這使你更容易知道該項目有多受歡迎。
示例
使用
stars:n
。如果你搜索一個有 1000 star 的倉庫,那么你的搜索查詢將是stars:1000
。這將列出正好有 1000 star 的倉庫。使用
forks:n
。這指定了一個倉庫應該有的 fork 數。如果你想找到少于 100 個 fork 的倉庫,你的搜索將是: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
。
如何按可見性搜索
你也可以根據倉庫的可見性來進行搜索。在這種情況下,你可以使用 public 或者 private。這將分別匹配公共或私人倉庫中的 issues 和 pull requests。
示例
使用
is:public
。這將顯示一個公共倉庫的列表。讓我們舉個例子,我們想搜索所有由 freeCodCamp 擁有的倉庫。那么我們的搜索將是:is:public org:freecodecamp
。使用
is:private
。這個查詢是為了列出所有在給定的搜索查詢下的私有倉庫。
總結
盡管我們在這里已經涵蓋了許多搜索查詢,但你總是可以發揮創意,將多個參數組合在一起,進一步縮小搜索范圍。
對于更多的資源和更多的搜索參數,你可以隨時參考 GitHub Docs 或利用高級 GitHub 搜索。這些方法總是能派上用場,因為它們提供了更多的歸檔選項。
你可以使用大量的搜索參數,使你在 GitHub 上的日常活動更容易。希望這能幫助你更容易、更有效地使用這個平臺。
原文鏈接:https://www.freecodecamp.org/news/github-search-tips/
作者:Hillary Nyakundi
譯者:Chengjun.L