GitHub各位應(yīng)該都很熟悉了,全球最大的開源社區(qū),也是全球最大的同性交友網(wǎng)站~~,但是大部分同學(xué)使用GitHub應(yīng)該就是通過別人的開源鏈接,點進(jìn)去下載對應(yīng)的項目,而真正使用Github來查找開源項目的還是少數(shù)。
面試總得有幾個和所求崗位相關(guān)的項目,如果應(yīng)屆生、轉(zhuǎn)行的童鞋沒有項目,就靠簡單的javaSE或者其他語言基礎(chǔ)那只能說“你太難了”。
通過 Github ,你可以很方便的下載自己需要的項目,了解實時熱點的項目,通過對優(yōu)秀的開源項目的學(xué)習(xí),更好的進(jìn)行學(xué)習(xí)與提高
那么如何使用Github高效率的查找項目呢?這篇文章帶你了解一下
倉庫分幾種?
本地倉庫:建立在本地的文件夾。
遠(yuǎn)程倉庫:建立在互聯(lián)網(wǎng)的服務(wù)器內(nèi)的文件夾。
分布式版本控制系統(tǒng)
配有兩個倉庫,在你的電腦上有一個 本地倉庫 ,在遠(yuǎn)程的服務(wù)器上有一個 遠(yuǎn)程倉庫 。
我們在提交文件的時候會先提交到本地倉庫,然后在有網(wǎng)絡(luò)的情況下,再從本地倉庫提交到網(wǎng)絡(luò)上的遠(yuǎn)程倉庫。
Git 就是一個典型的分布式版本控制系統(tǒng)
Github就擔(dān)任了上述的遠(yuǎn)程倉庫這一角色,就是一個存放在外網(wǎng)服務(wù)器上的一個文件夾。并且Github是免費(fèi)的開源的托管平臺
什么是Git
Git (讀音為/g?t/)是一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項目版本管理。
GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進(jìn)行托管,故名GitHub。
Github常用詞含義
watch:會持續(xù)收到項目的動態(tài)
fork:復(fù)制某個項目到自己的倉庫
star:點贊數(shù),表示對該項目表示認(rèn)可,點贊數(shù)越多的項目一般越火
clone:將項目下載到本地
follow:關(guān)注你感興趣的作者,會收到他們的動態(tài)
一個完整的項目界面
① 此處是項目作者名/項目名
② 此處是項目的點贊數(shù),和fock數(shù),越火的項目點贊和fock就會越多
③ 項目的Description 和Website 和tags 也就是項目的說明和標(biāo)簽, 通過此處你可以一眼了解該項目的功能和簡介
④ 項目的commits提交數(shù) ,一般比較好的項目,維護(hù)會比較頻繁,更新也會頻繁,提交數(shù)就會多
⑤項目提交時間, 通過這里你可以看到項目的提交時間,防止自己下載了一些遠(yuǎn)古項目
⑥README.md README.md文件是一個項目的入門手冊,里面介紹了整個項目的使用、功能等等。所以README文件寫得好不好,關(guān)系到這個項目能不能更容易的被其他人了解和使用。
使用Github搜索項目
一般人用Github的步驟 直接搜索,選擇一下Languages 設(shè)置下項目排序順序 就直接下載
然后就是克隆倉庫,閱讀md,看項目源代碼,看不懂,關(guān)閉項目,刪除。
這樣是很難找到真正適合自己的項目的,
GitHub里面有很多有價值的開源項目和代碼,如何在海量的代碼庫中搜索我們需要的信息,那么接下來將帶你了解下如何利用GitHub強(qiáng)大的搜索功能,來找到適合自己的項目
GitHub的高級搜索
GitHub有高級搜索功能,search/advanced可以輸入關(guān)鍵字、代碼庫大小、包含作者、代碼語、代碼包含后綴文件名等。
這里我們假設(shè)正要學(xué)習(xí) Spring Boot,要找一個 Spring Boot的 Demo 來進(jìn)行參考學(xué)習(xí)。
精準(zhǔn)搜索倉庫標(biāo)題、倉庫描述、README
in關(guān)鍵詞限制搜索范圍
按照項目名/倉庫名搜索(大小寫不敏感)
(1)公式
in:name xxx項目名包含xxx
in:description xxx項目描述包含xxx
in:readme xxx項目介紹文檔里含有xxx
比如我搜索項目名里含有 Spring Boot 的in:name Spring Boot
會發(fā)現(xiàn)項目數(shù)量由17W變成了11W
搜索項目描述里含有 Spring Boot 的in:description Spring Boot
stars或fork數(shù)量去查找
一個項目 star 數(shù)的多少,一般代表該項目的受歡迎程度 越受歡迎的項目,star數(shù)和fork數(shù)一定也不會少
(1)公式
stars:>xxx stars數(shù)大于xxx
stars:xx..xx stars數(shù)在xx…xx之間
forks:>xxx forks數(shù)大于xxx
forks:xx..xx forks數(shù)在xx…xx之間
查找star數(shù)大于等于5000的springboot項目 springbootstars:>=5000 查找fork數(shù)大于500的springcloud項目 springcloudforks:>500 查找fork在100到200之間并且stars數(shù)在80到100之間的springboot項目 springbootforks:100..200stars:80..100
我們進(jìn)一步縮小范圍,Star數(shù)量過濾,要求Star數(shù)量大于3000
in:namespringbootstarts:>3000
可以看到只有一千多個項目供我們選擇了
按照地區(qū)和語言進(jìn)行搜索
很多時候我們的項目是要用我們會的語言,你找到了一個Python寫的好項目,但是沒學(xué)過Python,下載了也看不懂,同時,為了更好的閱讀README.md幫助文檔以及項目注釋,我想很多同學(xué)都會想要下載中文的項目,當(dāng)然英語頂呱呱的請忽略
(1)公式
location:地區(qū)
language:語言
語言為javaScript language:javaScript 地區(qū)為china location:China
如果你要尋找使用 javascript 語言的國產(chǎn)項目,整個搜索條件就是:language:javascript location:china,從搜索結(jié)果來看,我們找到了五百多萬javascript 項目,近 21000 多名地區(qū)信息填寫為 China 的 javascript 開發(fā)者,
根據(jù)倉庫大小搜索
如果你只是想找一些小型的項目進(jìn)行個人學(xué)習(xí)和開發(fā),不想找特別復(fù)雜的,那么使用size關(guān)鍵字查找簡單的 Demo,就成了你的首選
(1)公式
size:>= 數(shù)字
注意:100代表100Kb 單位為Kb
根據(jù)倉庫是否在更新的搜索
尋找項目當(dāng)然是想要找到最新的項目,而不是好久都沒有更新的老項目了,
(1)公式
pushed:> YYYY-MM-DD最后上傳日期大于YYYY-MM-DD
created:> YYYY-MM-DD創(chuàng)建日期大于YYYY-MM-DD
比如我們想要尋找2020年最新更新的項目,可以用pushed:>2020-01-03 Spring Boot,這樣子就可以找到今年一月份之后更新的最新項目
根據(jù)某個人或組織進(jìn)行搜索
如果你想在GitHub 上找一下某個大神是不是提交了新的項目,可以對他們進(jìn)行精準(zhǔn)搜索
(1)公式
user: name查找某個用戶
org: name查找某個組織
followers:>=xxx查找關(guān)注者數(shù)量超過xxx的開發(fā)者
比方說我們想要找一下廖雪峰老師的python開源項目
user:MichaelLiaolanguage:python
根據(jù)倉庫的LICENSE搜索
License是很多人容易忽略的一個問題
開源項目的License(項目授權(quán)協(xié)議) 有的開源項目作者明確禁止商用了,但是你不知情下載了,并且使用了,這就會很麻煩,“非常友好”的協(xié)議,比較出名的有這幾種:BSD、MPL(Mozilla)、Apache、MIT。這些協(xié)議不但允許項目的使用者使用開源庫,有些還允許對開源庫進(jìn)行修改并重新分發(fā)。因此用起來特別爽。上述這幾個協(xié)議在細(xì)節(jié)上有些小差異,大伙兒可以去它們官網(wǎng)瞧一下。
以下這個網(wǎng)站,詳細(xì)介紹了各個License的區(qū)別。
http://choosealicense.com/licenses/
(1)公式
-license:對應(yīng)協(xié)議
例如咱們要找協(xié)議是最為寬松的 Apache License 2 的代碼,
license:apache-2.0SpringBoot
awesome加強(qiáng)搜索
Awesome 似乎已經(jīng)成為不少 GitHub 項目喜愛的命名之一,Awesome 往往整合了大量的同一領(lǐng)域的資料,讓大家可以更好的學(xué)習(xí)。
(1)公式
awesome 關(guān)鍵字 awesome 系列一般是用來收集學(xué)習(xí)、工具、書籍類相關(guān)的項目
比如搜索優(yōu)秀的python相關(guān)的項目,包括框架、教程等
awesome-python,這個庫提供了各個領(lǐng)域常見的python庫支持。整體看下來,幾乎涵蓋了所有的常見的計算機(jī)領(lǐng)域,
熱門搜索(GitHub Trend 和 GitHub Topic)
GitHub Trend 頁面總結(jié)了每天/每周/每月周期的熱門 Repositories 和 Developers,你可以看到在某個周期處于熱門狀態(tài)的開發(fā)項目和開發(fā)者
GitHub Topic 展示了最新和最流行的討論主題,在這里你不僅能夠看到開發(fā)項目,還能看到更多非開發(fā)技術(shù)的討論主題,
審核編輯:湯梓紅
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6662瀏覽量
110909 -
JAVA
+關(guān)注
關(guān)注
19文章
2975瀏覽量
105182 -
開源
+關(guān)注
關(guān)注
3文章
3409瀏覽量
42723 -
GitHub
+關(guān)注
關(guān)注
3文章
473瀏覽量
16597
原文標(biāo)題:這才是 玩轉(zhuǎn)Github 的正確姿勢
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
高效率通信電源技術(shù)
高效率開關(guān)電源設(shè)計與制作
高效率高線性的功放怎么實現(xiàn)?
高效率電源的設(shè)計
高效率開關(guān)電源的設(shè)計及應(yīng)用
![<b class='flag-5'>高效率</b>開關(guān)電源的設(shè)計及應(yīng)用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
何為高效率電機(jī)
提高效率的DC電源模塊設(shè)計技巧
![提<b class='flag-5'>高效率</b>的DC電源模塊設(shè)計技巧](https://file1.elecfans.com/web2/M00/C0/B9/wKgZomXYLdyAcwewAAHXir4VCZw058.png)
評論