天天看點

這才是 玩轉Github 的正确姿勢

作者:sungchungfoor

這才是 玩轉Github 的正确姿勢

GitHub各位應該都很熟悉了,全球最大的開源社群,也是全球最大的同性交友網站~~,但是大部分同學使用GitHub應該就是通過别人的開源連結,點進去下載下傳對應的項目,而真正使用Github來查找開源項目的還是少數,

面試總得有幾個和所求崗位相關的項目,如果應屆生、轉行的童鞋沒有項目,就靠簡單的javaSE或者其他語言基礎那隻能說“你太難了”。

通過 Github ,你可以很友善的下載下傳自己需要的項目,了解實時熱點的項目,通過對優秀的開源項目的學習,更好的進行學習與提高

這才是 玩轉Github 的正确姿勢
那麼如何使用Github高效率的查找項目呢?這篇文章帶你了解一下

倉庫分幾種?

  • 本地倉庫:建立在本地的檔案夾。
  • 遠端倉庫:建立在網際網路的伺服器内的檔案夾。

分布式版本控制系統

  • 配有兩個倉庫,在你的電腦上有一個 本地倉庫 ,在遠端的伺服器上有一個 遠端倉庫 。
  • 我們在送出檔案的時候會先送出到本地倉庫,然後在有網絡的情況下,再從本地倉庫送出到網絡上的遠端倉庫。
  • Git 就是一個典型的分布式版本控制系統
  • Github就擔任了上述的遠端倉庫這一角色,就是一個存放在外網伺服器上的一個檔案夾。并且Github是免費的開源的托管平台

什麼是Git

Git (讀音為/gɪt/)是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。

GitHub是一個面向開源及私有軟體項目的托管平台,因為隻支援git 作為唯一的版本庫格式進行托管,故名GitHub。

這才是 玩轉Github 的正确姿勢

Github常用詞含義

  • watch:會持續收到項目的動态
  • fork:複制某個項目到自己的倉庫
  • star:點贊數,表示對該項目表示認可,點贊數越多的項目一般越火
  • clone:将項目下載下傳到本地
  • follow:關注你感興趣的作者,會收到他們的動态

一個完整的項目界面

這才是 玩轉Github 的正确姿勢
  • ① 此處是項目作者名/項目名
  • ② 此處是項目的點贊數,和fock數,越火的項目點贊和fock就會越多
  • ③ 項目的Description 和Website 和tags 也就是項目的說明和标簽, 通過此處你可以一眼了解該項目的功能和簡介
  • ④ 項目的commits送出數 ,一般比較好的項目,維護會比較頻繁,更新也會頻繁,送出數就會多
  • ⑤項目送出時間, 通過這裡你可以看到項目的送出時間,防止自己下載下傳了一些遠古項目
  • ⑥ README.md README.md檔案是一個項目的入門手冊,裡面介紹了整個項目的使用、功能等等。是以README檔案寫得好不好,關系到這個項目能不能更容易的被其他人了解和使用。

使用Github搜尋項目

一般人用Github的步驟 直接搜尋,選擇一下Languages 設定下項目排序順序 就直接下載下傳

然後就是克隆倉庫,閱讀md,看項目源代碼,看不懂,關閉項目,删除。

這才是 玩轉Github 的正确姿勢

這樣是很難找到真正适合自己的項目的,

GitHub裡面有很多有價值的開源項目和代碼,如何在海量的代碼庫中搜尋我們需要的資訊,那麼接下來将帶你了解下如何利用GitHub強大的搜尋功能,來找到适合自己的項目

GitHub的進階搜尋

GitHub有進階搜尋功能,search/advanced可以輸入關鍵字、代碼庫大小、包含作者、代碼語、代碼包含字尾檔案名等。

這才是 玩轉Github 的正确姿勢
這才是 玩轉Github 的正确姿勢

這裡我們假設正要學習 Spring Boot,要找一個 Spring Boot的 Demo 來進行參考學習。

精準搜尋倉庫标題、倉庫描述、README

in關鍵詞限制搜尋範圍

按照項目名/倉庫名搜尋(大小寫不敏感)

(1)公式

  • in:name xxx 項目名包含xxx
  • in:description xxx 項目描述包含xxx
  • in:readme xxx 項目介紹文檔裡含有xxx

比如我搜尋項目名裡含有 Spring Boot 的 in:name Spring Boot

會發現項目數量由17W變成了11W

這才是 玩轉Github 的正确姿勢

搜尋項目描述裡含有 Spring Boot 的 in:description Spring Boot

這才是 玩轉Github 的正确姿勢

stars或fork數量去查找

一個項目 star 數的多少,一般代表該項目的受歡迎程度 越受歡迎的項目,star數和fork數一定也不會少

(1)公式

  • stars:>xxx stars數大于xxx
  • stars:xx..xx stars數在xx…xx之間
  • forks:>xxx forks數大于xxx
  • forks:xx..xx forks數在xx…xx之間
查找star數大于等于5000的springboot項目
     spring boot stars:>=5000
 查找fork數大于500的springcloud項目
     spring cloud forks:>500
 查找fork在100到200之間并且stars數在80到100之間的springboot項目
     spring boot forks:100..200 stars:80..100
           

我們進一步縮小範圍,Star數量過濾,要求Star數量大于3000

in:name spring boot starts :> 3000
           

可以看到隻有一千多個項目供我們選擇了

這才是 玩轉Github 的正确姿勢

按照地區和語言進行搜尋

很多時候我們的項目是要用我們會的語言,你找到了一個Python寫的好項目,但是沒學過Python,下載下傳了也看不懂,同時,為了更好的閱讀README.md幫助文檔以及項目注釋,我想很多同學都會想要下載下傳中文的項目,當然英語頂呱呱的請忽略

(1)公式

  • location:地區
  • language:語言
語言為javaScript   
language:javaScript   
地區為china
location: China
           

如果你要尋找使用 javascript 語言的國産項目,整個搜尋條件就是:language:javascript location:china,從搜尋結果來看,我們找到了五百多萬javascript 項目,近 21000 多名地區資訊填寫為 China 的 javascript 開發者,

這才是 玩轉Github 的正确姿勢

根據倉庫大小搜尋

如果你隻是想找一些小型的項目進行個人學習和開發,不想找特别複雜的,那麼使用size關鍵字查找簡單的 Demo,就成了你的首選

(1)公式

size:>= 數字

注意:100代表100Kb 機關為Kb

根據倉庫是否在更新的搜尋

尋找項目當然是想要找到最新的項目,而不是好久都沒有更新的老項目了,

(1)公式

  • pushed:> YYYY-MM-DD 最後上傳日期大于YYYY-MM-DD
  • created:> YYYY-MM-DD 建立日期大于YYYY-MM-DD

比如我們想要尋找2020年最新更新的項目,可以用 pushed:>2020-01-03 Spring Boot ,這樣子就可以找到今年一月份之後更新的最新項目

這才是 玩轉Github 的正确姿勢

根據某個人或組織進行搜尋

如果你想在GitHub 上找一下某個大神是不是送出了新的項目,可以對他們進行精準搜尋

(1)公式

  • user: name 查找某個使用者
  • org: name 查找某個組織
  • followers:>=xxx 查找關注者數量超過xxx的開發者

比方說我們想要找一下廖雪峰老師的python開源項目

user:MichaelLiao language:python
           
這才是 玩轉Github 的正确姿勢

根據倉庫的LICENSE搜尋

License是很多人容易忽略的一個問題

開源項目的License(項目授權協定) 有的開源項目作者明确禁止商用了,但是你不知情下載下傳了,并且使用了,這就會很麻煩,“非常友好”的協定,比較出名的有這幾種:BSD、MPL(Mozilla)、Apache、MIT。這些協定不但允許項目的使用者使用開源庫,有些還允許對開源庫進行修改并重新分發。是以用起來特别爽。上述這幾個協定在細節上有些小差異,大夥兒可以去它們官網瞧一下。

以下這個網站,詳細介紹了各個License的差別。

http://choosealicense.com/licenses/

(1)公式

-license:對應協定

例如咱們要找協定是最為寬松的 Apache License 2 的代碼,

license:apache-2.0 Spring Boot
           
這才是 玩轉Github 的正确姿勢

awesome加強搜尋

Awesome 似乎已經成為不少 GitHub 項目喜愛的命名之一,Awesome 往往整合了大量的同一領域的資料,讓大家可以更好的學習。

(1)公式

awesome 關鍵字 awesome 系列一般是用來收集學習、工具、書籍類相關的項目

  • 比如搜尋優秀的python相關的項目,包括架構、教程等
這才是 玩轉Github 的正确姿勢

awesome-python,這個庫提供了各個領域常見的python庫支援。整體看下來,幾乎涵蓋了所有的常見的計算機領域,

熱門搜尋(GitHub Trend 和 GitHub Topic)

GitHub Trend 頁面總結了每天/每周/每月周期的熱門 Repositories 和 Developers,你可以看到在某個周期處于熱門狀态的開發項目和開發者

這才是 玩轉Github 的正确姿勢

GitHub Topic 展示了最新和最流行的讨論主題,在這裡你不僅能夠看到開發項目,還能看到更多非開發技術的讨論主題,

這才是 玩轉Github 的正确姿勢

繼續閱讀