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