GitHub 搜索技巧:如何更有效地搜索 issue、repo 和更多信息
當(dāng)我還是一個(gè)開源貢獻(xiàn)的初學(xué)者時(shí),我最大的挑戰(zhàn)之一是找到正確的項(xiàng)目/issue 來為其做貢獻(xiàn)。
在很長一段時(shí)間里,我依靠互聯(lián)網(wǎng)上不同作者創(chuàng)作的資源(順便說一下,這些資源很好)。但我一直想找到一種解決這個(gè)問題的方法——一種我可以搜索和跟蹤適合我的技能組合的項(xiàng)目的方法。
讓我們承認(rèn)一件事:與谷歌不同,在 GitHub 上搜索并不容易。但作為一個(gè)開發(fā)者,你有可能每天都會(huì)與 GitHub 或 GitLab 打交道。
現(xiàn)在的問題不是你用這些版本控制系統(tǒng)做什么,而是你如何使用它們。就像掌握谷歌搜索技巧對任何普通互聯(lián)網(wǎng)用戶來說都是必不可少的,我相信對于開發(fā)者來說,學(xué)會(huì)如何有效地在 GitHub 搜索也是至關(guān)重要的。
在這篇文章中,我們將看看可以用來正確地在 GitHub 搜索的不同技巧。你將學(xué)習(xí)如何通過搜索:
- 問題(issues)和拉取請求(pull requests)
- 倉庫(repositories)
- 用戶(users)
- 主題(topics)
以及更多。讓我們開始吧。
GitHub 搜索查詢
為了在互聯(lián)網(wǎng)上找到關(guān)于某件事情的詳細(xì)信息,你需要有正確的搜索技巧。這在 GitHub 上沒有任何不同——要找到詳細(xì)的信息,你可以利用常見的過濾、排序和搜索技術(shù),輕松找到特定項(xiàng)目的 issues 和 pull requests。
即使你能在互聯(lián)網(wǎng)上找到許多不同項(xiàng)目的資源,但當(dāng)你想自己進(jìn)行搜索時(shí),主要問題就來了:你該如何開始?你應(yīng)該使用哪些關(guān)鍵詞來找到正確的結(jié)果?
大多數(shù)維護(hù)者傾向于用 issues 來標(biāo)記他們的項(xiàng)目,這使得貢獻(xiàn)者更容易找到合適的項(xiàng)目。下面列出了一些在使用 GitHub 時(shí)可能會(huì)對你有所幫助的小技巧。
如何在 GitHub 上搜索 issues 和 pull requests
搜索 issues 和相關(guān)的 pull requests,是尋找要貢獻(xiàn)的項(xiàng)目的最常見的方法之一。這里有一些技巧,你可以用來輕松找到可靠的答案:
1、is:issue is:open label:beginner——這個(gè)特別的查詢會(huì)列出所有具有開放的、并標(biāo)有 beginner 的 issues 的項(xiàng)目。
2、is:issue is:open label:easy——這將列出所有被標(biāo)記為 easy 的開放 issues。
3、is:issue is:open label:first-timers-only——這將列出所有歡迎第一次做貢獻(xiàn)的人們的開放 issues。
4、is:issue is:open label:good-first-bug——這將列出帶有 good-first-bug 標(biāo)簽的開放 issues 的項(xiàng)目,以吸引貢獻(xiàn)者為其工作。
5、is:issue is:open label:"good first issue"——這將列出所有帶有 good first issue 標(biāo)簽的開放 issues,意味著它是初學(xué)者入門的好地方。
6、is:issue is:open label:starter——這將列出整個(gè) GitHub 中所有標(biāo)有 starter 的開放 issues。
7、is:issue is:open label:up-for-grabs——這將列出開放的 issues,如果你有必要的技能,就可以進(jìn)行工作。
8、no:project type:issue is:open——這將列出所有沒有分配給特定項(xiàng)目的開放 issues。
9、no:milestone type:issue is:open——很多時(shí)候,項(xiàng)目是用里程碑來追蹤的。但如果你想找到?jīng)]有被跟蹤的 issues,這個(gè)搜索查詢將為你列出這些項(xiàng)目。
10、no:label type:issue is:open——這將列出所有沒有標(biāo)簽的開放 issues。
11、is:issue is:open no:assignee——這顯示所有尚未分配給某人的開放 issues。
如何搜索倉庫
默認(rèn)情況下,要進(jìn)行搜索,你需要在搜索欄中輸入倉庫的名稱,然后就可以得到一些搜索結(jié)果。
但你找到你想要的倉庫的機(jī)會(huì)非常低。
讓我們看看有什么方法可以縮小搜索范圍:
如何通過名稱、描述/README 查找
當(dāng)你通過 README 文件的名稱和描述進(jìn)行搜索時(shí),需要注意的是,你的搜索短語應(yīng)該以 in 限定詞開始。這樣就可以在你要找的東西的“內(nèi)部”進(jìn)行搜索。
示例
-
使用
in:name。比方說,你正在尋找資源,以了解更多關(guān)于數(shù)據(jù)科學(xué)的信息。在這種情況下,你可以使用Data Science in:name命令,它將列出倉庫名稱中含有 Data Science 的倉庫。 -
使用
in:description。如果你想找到具有特定描述的倉庫,例如,倉庫的描述中包含 “freeCodeCamp” 一詞,我們的搜索將是:freecodecamp in:description。 -
使用
in:readme。你用它來搜索一個(gè)文件的 README 中的某一短語。如果我們想找到 README 中包含 freecodecamp 這個(gè)詞的倉庫,我們的搜索將是:freecodecamp in:readme。 -
使用
in:topic。你用它來查找某個(gè)短語或單詞是否被標(biāo)注在主題中。例如,要找到所有在主題中列出 freecodecamp 的倉庫,我們的搜索將是:freecodecamp in:topic。
你也可以結(jié)合多個(gè)搜索查詢,進(jìn)一步縮小搜索范圍。
如何按 Stars、Forks 查找
你也可以根據(jù)項(xiàng)目的 star 和 fork 的數(shù)量來搜索倉庫。這使你更容易知道該項(xiàng)目有多受歡迎。
示例
-
使用
stars:n。如果你搜索一個(gè)有 1000 star 的倉庫,那么你的搜索查詢將是stars:1000。這將列出正好有 1000 star 的倉庫。 -
使用
forks:n。這指定了一個(gè)倉庫應(yīng)該有的 fork 數(shù)。如果你想找到少于 100 個(gè) fork 的倉庫,你的搜索將是:forks:<100。
你可以隨時(shí)使用關(guān)系運(yùn)算符,如 <、>、<=、>= 和 .. 來幫助你進(jìn)一步縮小搜索范圍。
如何按語言查找
在 GitHub 上搜索的另一個(gè)很酷的方法是按語言搜索。這可以幫助你過濾出特定語言的倉庫。
示例
-
使用
language:LANGUAGE。例如,如果你想找到用 PHP 編寫的倉庫,你的搜索將是:language:PHP。
如何按組織名稱查找
你也可以搜索由一個(gè)特定組織維護(hù)或創(chuàng)建的倉庫/項(xiàng)目。為此,你需要用關(guān)鍵詞 org:... 來開始你的搜索,然后是組織名稱。
例如,如果你搜索 org:freecodecamp,它將列出與 freeCodeCamp 相匹配的倉庫。
如何按日期查找
如果你希望你的結(jié)果基于一個(gè)特定的日期,你可以使用這些關(guān)鍵詞之一進(jìn)行搜索:created、updated、merged 和 closed。這些關(guān)鍵詞應(yīng)該伴隨著格式為 YYYY-MM-DD 的日期一起使用。
示例
使用 keyword:YYYY-MM-DD。舉個(gè)例子,我們想搜索所有在 2022-10-01 之后創(chuàng)建的帶有 freeCodeCamp 這個(gè)詞的倉庫。那么我們的搜索將是:freecodecamp created:>2022-10-01。
你也可以使用 <、>、>= 和 <= 來搜索指定日期之后、之前和指定日期的日期。要在一個(gè)范圍內(nèi)搜索,你可以使用 ...。
如何通過許可證查找
當(dāng)你在尋找一個(gè)可以貢獻(xiàn)的項(xiàng)目時(shí),許可證是非常重要的。不同的許可證對貢獻(xiàn)者可以做什么或不可以做什么給予不同的權(quán)利。
為了使你更容易找到有正確許可證的項(xiàng)目,你需要對許可證有一個(gè)很好的了解。你可以在這里閱讀更多關(guān)于它們的信息。
示例
-
使用
license:LICENSE_KEYWORD。這是一個(gè)搜索具有特定許可證的項(xiàng)目的好方法。例如,要搜索具有 MIT 許可證的項(xiàng)目,你可以使用license:MIT。
如何按可見性搜索
你也可以根據(jù)倉庫的可見性來進(jìn)行搜索。在這種情況下,你可以使用 public 或者 private。這將分別匹配公共或私人倉庫中的 issues 和 pull requests。
示例
-
使用
is:public。這將顯示一個(gè)公共倉庫的列表。讓我們舉個(gè)例子,我們想搜索所有由 freeCodCamp 擁有的倉庫。那么我們的搜索將是:is:public org:freecodecamp。 -
使用
is:private。這個(gè)查詢是為了列出所有在給定的搜索查詢下的私有倉庫。
總結(jié)
盡管我們在這里已經(jīng)涵蓋了許多搜索查詢,但你總是可以發(fā)揮創(chuàng)意,將多個(gè)參數(shù)組合在一起,進(jìn)一步縮小搜索范圍。
對于更多的資源和更多的搜索參數(shù),你可以隨時(shí)參考 GitHub Docs 或利用高級(jí) GitHub 搜索。這些方法總是能派上用場,因?yàn)樗鼈兲峁┝烁嗟臍w檔選項(xiàng)。
你可以使用大量的搜索參數(shù),使你在 GitHub 上的日常活動(dòng)更容易。希望這能幫助你更容易、更有效地使用這個(gè)平臺(tái)。
