前言
最近發(fā)布了《GitHub嵌入式好項(xiàng)目總結(jié)》系列,受到了大家的喜歡,不過(guò)有同學(xué)反饋GitHub不會(huì)用,所以我花了點(diǎn)時(shí)間寫了下GitHub的使用技巧,以供參考。
正文
如果你想快速掌握所有的學(xué)習(xí)更多技巧
GitHub 官方文檔?:?https://docs.github.com/cn
一般來(lái)說(shuō),大多數(shù)人在搜索項(xiàng)目時(shí),會(huì)傾向于直接搜索與他們所需技術(shù)棧相關(guān)的項(xiàng)目。而更高級(jí)的搜索方式,則涉及根據(jù)項(xiàng)目的匹配度、獲得的Star數(shù)量進(jìn)行排序,以及選擇特定的編程語(yǔ)言、倉(cāng)庫(kù)類型或代碼片段作為篩選條件,以便更精確地找到符合需求的項(xiàng)目。
下面以搜索stm32項(xiàng)目為例:
可以看到搜索到的信息非常多且雜亂,需要你再花費(fèi)大精力再去篩選。
如果你僅僅依賴上述功能,那么你只是觸及了 GitHub 搜索功能的冰山一角!
實(shí)際上,GitHub 的搜索功能遠(yuǎn)比你所了解的更為強(qiáng)大和豐富。接下來(lái),我將為你介紹更多高級(jí)的搜索技巧,幫助你更深入地挖掘 GitHub 的潛力。
搜索 GitHub 時(shí),你可以構(gòu)建匹配特定數(shù)字和單詞的查詢。
1.查詢大于或小于另一個(gè)值的值
可以使用?>、>=、<?和?<=?搜索大于、大于等于、小于以及小于等于另一個(gè)值的值。
實(shí)例:
查找星標(biāo)超過(guò)1000的stm32項(xiàng)目,結(jié)果只有2個(gè),硬件的高贊項(xiàng)目確實(shí)少,當(dāng)然也是熱度不夠的原因,很多互聯(lián)網(wǎng)的一些資料集合項(xiàng)目輕松就幾萬(wàn)stars。
stm32?stars:>10000
還可以使用 范圍查詢 搜索大于等于或小于等于另一個(gè)值的值。
2.查詢范圍之間的值
可以使用范圍語(yǔ)法?*n*..*n*?搜索范圍內(nèi)的值,其中第一個(gè)數(shù)字 n 是最低值,而第二個(gè)是最高值。
3.查詢?nèi)掌?/strong>
可以通過(guò)使用?>、>=、<、<=?和 范圍查詢 搜索早于或晚于另一個(gè)日期,或者位于日期范圍內(nèi)的日期。
日期格式必須遵循 [ISO8601]標(biāo)準(zhǔn),即 YYYY-MM-DD(年-月-日)。
也可以在日期后添加可選的時(shí)間信息 THH:MM:SS+00:00,以便按小時(shí)、分鐘和秒進(jìn)行搜索。這是 T,隨后是 HH:MM:SS(時(shí)-分-秒)和 UTC 偏移 (+00:00)。
4.排除特定結(jié)果
可以使用 NOT 語(yǔ)法排除包含特定字詞的結(jié)果。NOT 運(yùn)算符只能用于字符串關(guān)鍵詞, 不適用于數(shù)字或日期。
縮小搜索結(jié)果范圍的另一種途徑是排除特定的子集。您可以為任何搜索限定符添加?-?前綴,以排除該限定符匹配的所有結(jié)果。
5.對(duì)帶有空格的查詢使用引號(hào)
如果搜索含有空格的查詢,您需要用引號(hào)將其括起來(lái)。例如:
cats NOT “hello world” 匹配含有 “vue” 字樣但不含有 “hello world” 字樣的倉(cāng)庫(kù)。
build label:“bug fix” 匹配具有標(biāo)簽 “bug fix”、含有 “build” 字樣的議題。
某些非字母數(shù)字符號(hào)(例如空格)會(huì)從引號(hào)內(nèi)的代碼搜索查詢中刪除,因此結(jié)果可能出乎意料。
6.使用用戶名的查詢
如果搜索查詢包含需要用戶名的限定符,例如 user、actor 或 assignee,您可以使用任何 GitHub 用戶名指定特定人員,或使用?@me 指定當(dāng)前用戶。
@me 只能與限定符一起使用,而不能用作搜索詞,例如?@me main.workflow。
7.按倉(cāng)庫(kù)名稱、說(shuō)明或自述文件內(nèi)容搜索
通過(guò) in 限定符,可以將搜索限制為倉(cāng)庫(kù)名稱、倉(cāng)庫(kù)說(shuō)明、自述文件內(nèi)容或這些的任意組合。
如果省略此限定符,則只搜索倉(cāng)庫(kù)名稱和說(shuō)明。
實(shí)例:
匹配名字里就包含stm32的項(xiàng)目,可以增加相關(guān)度
stm32?in:name,description
8.在用戶或組織的倉(cāng)庫(kù)內(nèi)搜索
要在特定用戶或組織?擁有的所有倉(cāng)庫(kù)中搜索,可以使用 user 或 org 限定符。
9.按倉(cāng)庫(kù)大小搜索
size 限定符使用大于、小于和范圍限定符查找匹配特定大小(以千字節(jié)為單位)的倉(cāng)庫(kù)。
實(shí)例:搜索倉(cāng)庫(kù)是1MB大小的stm32項(xiàng)目
stm32 size:1000
10.按關(guān)注者數(shù)量搜索
可以使用 followers 限定符以及大于、小于和范圍限定符基于倉(cāng)庫(kù)擁有的關(guān)注者數(shù)量過(guò)濾倉(cāng)庫(kù)。
實(shí)例:
搜索關(guān)注者超過(guò)10000人的stm32項(xiàng)目,也是不多,硬件的項(xiàng)目熱度相對(duì)低
stm32?followers:>10000
硬件的項(xiàng)目關(guān)注還是少
11.按復(fù)刻數(shù)量搜索
forks 限定符使用大于、小于和范圍限定符指定倉(cāng)庫(kù)應(yīng)具有的復(fù)刻數(shù)量。
實(shí)例:
搜索復(fù)刻超過(guò)1000次的stm32項(xiàng)目
stm32?forks:>1000
12.按星號(hào)數(shù)量搜索
可以使用?大于、小于和范圍限定符號(hào)基于倉(cāng)庫(kù)具有的?星標(biāo)?數(shù)量搜索倉(cāng)庫(kù)
13.按倉(cāng)庫(kù)創(chuàng)建或上次更新時(shí)間搜索
可以基于創(chuàng)建時(shí)間或上次更新時(shí)間過(guò)濾倉(cāng)庫(kù)。
對(duì)于倉(cāng)庫(kù)創(chuàng)建,您可以使用 created 限定符;
要了解倉(cāng)庫(kù)上次更新的時(shí)間,要使用 pushed 限定符。pushed 限定符將返回倉(cāng)庫(kù)列表,按倉(cāng)庫(kù)中任意分支上最近進(jìn)行的提交排序。
兩者均采用日期作為參數(shù)。日期格式必須遵循 ISO8601 標(biāo)準(zhǔn),即 YYYY-MM-DD(年-月-日)。
也可以在日期后添加可選的時(shí)間信息 THH:MM:SS+00:00,以便按小時(shí)、分鐘和秒進(jìn)行搜索。這是 T,隨后是 HH:MM:SS(時(shí)-分-秒)和 UTC 偏移 (+00:00)。
日期支持 大于、小于和范圍限定符。
實(shí)例:
搜索在2024年1月1號(hào)之后創(chuàng)建的stm32項(xiàng)目
stm32 created:>2024-01-01
實(shí)例:
搜索在2024年1月1號(hào)之后接受推送的stm32項(xiàng)目,可以判斷是不是比較活躍
stm32 pushed:>2024-01-01
14.按語(yǔ)言搜索
可以基于其編寫采用的主要語(yǔ)言搜索倉(cāng)庫(kù)。
實(shí)例:
搜索基于C++的stm32項(xiàng)目
stm32 language:C++
15.按主題搜索
可以查找歸類為特定主題的所有倉(cāng)庫(kù)。
實(shí)例:搜索以算法為?主題的stm32項(xiàng)目
stm32 topic:algorithm
16.按主題數(shù)量搜索
可以使用 topics 限定符以及 [大于、小于和范圍限定符]按應(yīng)用于倉(cāng)庫(kù)的 [主題] 數(shù)量搜索倉(cāng)庫(kù)。
17.使用可視界面搜索
還可以使用 search page 或 advanced search page 搜索 GitHub 哦。
這種搜索方式,估計(jì)就更少人知道了吧。
advanced search page 提供用于構(gòu)建搜索查詢的可視界面。
可以按各種因素過(guò)濾搜索,例如倉(cāng)庫(kù)具有的星標(biāo)數(shù)或復(fù)刻數(shù)。在填寫高級(jí)搜索字段時(shí),您的查詢將在頂部搜索欄中自動(dòng)構(gòu)建。
地址:
https://github.com/search/advanced
18.按許可搜索
可以按其許可搜索倉(cāng)庫(kù)。您必須使用許可關(guān)鍵詞按特定許可或許可系列過(guò)濾倉(cāng)庫(kù)。
19.按公共或私有倉(cāng)庫(kù)搜索
可以基于倉(cāng)庫(kù)是公共還是私有來(lái)過(guò)濾搜索。
20.按公共或私有倉(cāng)庫(kù)搜索
可以根據(jù)倉(cāng)庫(kù)是否為鏡像以及托管于其他位置托管來(lái)搜索它們。
21.基于倉(cāng)庫(kù)是否已存檔搜索
可以基于倉(cāng)庫(kù)是否已存檔來(lái)搜索倉(cāng)庫(kù)。
基于具有 good first issue 或 help wanted 標(biāo)簽的議題數(shù)量搜索
可以使用限定符 help-wanted-issues:>n 和 good-first-issues:>n 搜索具有最少數(shù)量標(biāo)簽為 help-wanted 或 good-first-issue 議題的倉(cāng)庫(kù)。
22.按交互排序
語(yǔ)法 | 例子 |
---|---|
org:github sort:interactions | 匹配 GitHub 擁有的存儲(chǔ)庫(kù)中的問(wèn)題,按反應(yīng)和評(píng)論的最高組合數(shù)排序 |
org:github sort:interactions-asc | 匹配 GitHub 擁有的存儲(chǔ)庫(kù)中的問(wèn)題,按最少的反應(yīng)和評(píng)論組合數(shù)排序 |
23.搜索代碼
參考文檔:
https://zhuanlan.zhihu.com/p/347723938
https://blog.csdn.net/PaperJack/article/details/118543980
https://cloud.tencent.com/developer/article/2024250
https://www.cnblogs.com/flydashpig/p/11795238.html
未完待續(xù),持續(xù)更新!以防后邊找不到可以點(diǎn)贊收藏下!