github作為全球最大的開源軟件項目托管平臺,相信很多程序員都在使用玉锌,不僅僅是因為它可以免費(fèi)的作為我們公有或者私有的代碼倉庫名挥,更因為github上面有大量的開源學(xué)習(xí)項目或資源,秉著開源自由的理念主守,吸引了大量的個人或者企業(yè)開發(fā)者禀倔。
那么面對如此海量的代碼倉庫,如何才能在眾多的資源中搜索出更優(yōu)秀参淫,更符合自己需求的項目呢救湖?
比如我想搜索一個springboot項目,你是否就直接輸入springboot關(guān)鍵字直接搜索涎才,但是搜索出了118,085個結(jié)果鞋既,當(dāng)然了力九,你還可以做一些簡單的排序,比如通過stars邑闺、forks的數(shù)量跌前。
搜索中如果你發(fā)現(xiàn)github網(wǎ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é)果真的精確嗎?接下來靶衍,我們來演示一下幾個我們常用的github搜索技巧灾炭,讓搜索出來的結(jié)果更加精確、符合要求颅眶!
首先我們來看一張思維導(dǎo)圖:
上面的搜索技巧蜈出,我分為了2類,一類常用和更多涛酗,常用的部分應(yīng)該是我們?nèi)粘J褂妙l率最高的掏缎,需要我們記住。
1煤杀、in
關(guān)鍵字 in 是用來限定搜索的范圍,可以指定是在名稱沪哺、描述沈自、readme文檔中搜索關(guān)鍵字
in:name:指定搜索范圍是倉庫名稱
in:description:指定搜索范圍是摘要中
in:readme:指定搜索范圍是readme文檔中
比如,指定項目倉庫名稱springboot辜妓、mybatis枯途、demo三個關(guān)鍵字,那么搜索如下:
in:name springboot mybatis demo
結(jié)果如下:
這樣搜索出來的項目就是一個簡單的demo整合項目籍滴,而不是綜合項目酪夷。 你還可以這樣搜:
in:description springboot mybatis 整合
2、stars 孽惰、forks
通常我們判斷一個項目好不好晚岭,可以通過項目的stars和fork數(shù)量來判斷,當(dāng)然了勋功,這也不是絕對的坦报,github中還隱藏這很多不為人所知的優(yōu)秀項目,等著你挖掘哈狂鞋。
方式如下:
stars:>:篩選stars數(shù)量大于某個值的倉庫
stars:start..end:篩選stars數(shù)量在start和end區(qū)間的倉庫
fork:>
fork:start..end
所以片择,通過stars 、forks關(guān)鍵字骚揍,我們可以通過stars 字管、forks數(shù)量來過濾一部分。比如,我要篩選搜索結(jié)果中嘲叔,stars數(shù)量大于50的項目亡呵。那么如下:
in:name springboot mybatis demo stars:>50
篩選之后的結(jié)果只有2個符合要求:
3、language
這個簡單借跪,指定項目的編寫語言政己,如java、python掏愁、php等歇由。比如我們搜索單點登錄,如果我們直接搜索in:description 單點登錄果港,那么出現(xiàn)的結(jié)果會包含各種語言的實現(xiàn)項目沦泌,但是如果你加上了java語言的限定條件之后,搜索出來的結(jié)果就只有java的辛掠。
in:description 單點登錄 language:java
4谢谦、created、pushed
創(chuàng)建日期萝衩、更新日期回挽。項目久不維護(hù)了,或者項目已經(jīng)創(chuàng)建很久了猩谊,那么項目的技術(shù)有時候就已經(jīng)過時了千劈,比如以前Springboot的1.5版本的創(chuàng)建項目就不是很適合現(xiàn)在了,現(xiàn)在我們學(xué)習(xí)的話直接上手2.0版本以上的比較好牌捷,所以找新項目墙牌,還得跟緊技術(shù)的迭代速度。
in:description 單點登錄 language:java pushed:>2019-12-01
通常來說暗甥,stars數(shù)量多喜滨,維護(hù)頻繁的項目都是比較優(yōu)秀的開源項目。
其他
還可以根據(jù)協(xié)議license:撤防;或者項目作者user:虽风;或者倉庫的大小size:>=;被關(guān)注人數(shù)followers:即碗,只不過大家就用得比較少焰情。
高級搜索
除了使用這種特定的限定詞來篩選之外,其實github還給我們提供了一種篩選的搜索鏈接剥懒。
https://github.com/search/advanced
其實就是界面化的搜索條件篩選框内舟,想不起搜索關(guān)鍵詞或者單詞的時候可以收藏這個高級搜索界面哈。
前期我也和很多小伙伴一樣初橘,到處收集了很多資料验游,后面發(fā)現(xiàn)很多重復(fù)的充岛!上面都是自己整理好的!現(xiàn)在BAT夢想成真耕蝉,我就把資料貢獻(xiàn)出來給有需要的人崔梗!順便求一波關(guān)注,哈哈~各位小伙伴關(guān)注我后私信【Java】就可以免費(fèi)領(lǐng)取噠
原文鏈接:https://juejin.im/timeline