github作為全球最大的開源軟件項(xiàng)目托管平臺(tái),相信很多程序員都在使用,不僅僅是因?yàn)樗梢悦赓M(fèi)的作為我們公有或者私有的代碼倉(cāng)庫(kù),更因?yàn)間ithub上面有大量的開源學(xué)習(xí)項(xiàng)目或資源,秉著開源自由的理念,吸引了大量的個(gè)人或者企業(yè)開發(fā)者。
那么面對(duì)如此海量的代碼倉(cāng)庫(kù),如何才能在眾多的資源中搜索出更優(yōu)秀,更符合自己需求的項(xiàng)目呢?
比如我想搜索一個(gè)springboot項(xiàng)目,你是否就直接輸入springboot關(guān)鍵字直接搜索,但是搜索出了118,085個(gè)結(jié)果,當(dāng)然了,你還可以做一些簡(jiǎn)單的排序,比如通過stars、forks的數(shù)量。
搜索中如果你發(fā)現(xiàn)github網(wǎng)頁(yè)加載很慢,或者圖片打不開,請(qǐng)打開hosts文件(C:\Windows\System32\drivers\etc),加上以下內(nèi)容:
192.30.253.113? ? github.com
151.101.113.194? ? github.global.ssl.fastly.net
151.101.184.133? ? assets-cdn.github.com
151.101.184.133? ? raw.githubusercontent.com
151.101.184.133? ? gist.githubusercontent.com
151.101.184.133? ? cloud.githubusercontent.com
151.101.184.133? ? camo.githubusercontent.com
151.101.184.133? ? avatars0.githubusercontent.com
151.101.184.133? ? avatars1.githubusercontent.com
151.101.184.133? ? avatars2.githubusercontent.com
151.101.184.133? ? avatars3.githubusercontent.com
151.101.184.133? ? avatars4.githubusercontent.com
151.101.184.133? ? avatars5.githubusercontent.com
151.101.184.133? ? avatars6.githubusercontent.com
151.101.184.133? ? avatars7.githubusercontent.com
151.101.184.133? ? avatars8.githubusercontent.com
但這樣搜索出來的結(jié)果真的精確嗎?接下來,我們來演示一下幾個(gè)我們常用的github搜索技巧,讓搜索出來的結(jié)果更加精確、符合要求!
首先我們來看一張思維導(dǎo)圖:
上面的搜索技巧,我分為了2類,一類常用和更多,常用的部分應(yīng)該是我們?nèi)粘J褂妙l率最高的,需要我們記住。
1、in
關(guān)鍵字 in 是用來限定搜索的范圍,可以指定是在名稱、描述、readme文檔中搜索關(guān)鍵字
in:name:指定搜索范圍是倉(cāng)庫(kù)名稱
in:description:指定搜索范圍是摘要中
in:readme:指定搜索范圍是readme文檔中
比如,指定項(xiàng)目倉(cāng)庫(kù)名稱springboot、mybatis、demo三個(gè)關(guān)鍵字,那么搜索如下:
in:name springboot mybatis demo
結(jié)果如下:
這樣搜索出來的項(xiàng)目就是一個(gè)簡(jiǎn)單的demo整合項(xiàng)目,而不是綜合項(xiàng)目。 你還可以這樣搜:
in:description springboot mybatis 整合
2、stars 、forks
通常我們判斷一個(gè)項(xiàng)目好不好,可以通過項(xiàng)目的stars和fork數(shù)量來判斷,當(dāng)然了,這也不是絕對(duì)的,github中還隱藏這很多不為人所知的優(yōu)秀項(xiàng)目,等著你挖掘哈。
方式如下:
stars:>:篩選stars數(shù)量大于某個(gè)值的倉(cāng)庫(kù)
stars:start..end:篩選stars數(shù)量在start和end區(qū)間的倉(cāng)庫(kù)
fork:>
fork:start..end
所以,通過stars 、forks關(guān)鍵字,我們可以通過stars 、forks數(shù)量來過濾一部分。比如,我要篩選搜索結(jié)果中,stars數(shù)量大于50的項(xiàng)目。那么如下:
in:name springboot mybatis demo stars:>50
篩選之后的結(jié)果只有2個(gè)符合要求:
3、language
這個(gè)簡(jiǎn)單,指定項(xiàng)目的編寫語(yǔ)言,如java、python、php等。比如我們搜索單點(diǎn)登錄,如果我們直接搜索in:description 單點(diǎn)登錄,那么出現(xiàn)的結(jié)果會(huì)包含各種語(yǔ)言的實(shí)現(xiàn)項(xiàng)目,但是如果你加上了java語(yǔ)言的限定條件之后,搜索出來的結(jié)果就只有java的。
in:description 單點(diǎn)登錄 language:java
4、created、pushed
創(chuàng)建日期、更新日期。項(xiàng)目久不維護(hù)了,或者項(xiàng)目已經(jīng)創(chuàng)建很久了,那么項(xiàng)目的技術(shù)有時(shí)候就已經(jīng)過時(shí)了,比如以前Springboot的1.5版本的創(chuàng)建項(xiàng)目就不是很適合現(xiàn)在了,現(xiàn)在我們學(xué)習(xí)的話直接上手2.0版本以上的比較好,所以找新項(xiàng)目,還得跟緊技術(shù)的迭代速度。
in:description 單點(diǎn)登錄 language:java pushed:>2019-12-01
通常來說,stars數(shù)量多,維護(hù)頻繁的項(xiàng)目都是比較優(yōu)秀的開源項(xiàng)目。
其他
還可以根據(jù)協(xié)議license:;或者項(xiàng)目作者user:;或者倉(cāng)庫(kù)的大小size:>=;被關(guān)注人數(shù)followers:,只不過大家就用得比較少。
高級(jí)搜索
除了使用這種特定的限定詞來篩選之外,其實(shí)github還給我們提供了一種篩選的搜索鏈接。
https://github.com/search/advanced
其實(shí)就是界面化的搜索條件篩選框,想不起搜索關(guān)鍵詞或者單詞的時(shí)候可以收藏這個(gè)高級(jí)搜索界面哈。
前期我也和很多小伙伴一樣,到處收集了很多資料,后面發(fā)現(xiàn)很多重復(fù)的!上面都是自己整理好的!現(xiàn)在BAT夢(mèng)想成真,我就把資料貢獻(xiàn)出來給有需要的人!順便求一波關(guān)注,哈哈~各位小伙伴關(guān)注我后私信【Java】就可以免費(fèi)領(lǐng)取噠
原文鏈接:https://juejin.im/timeline