git和github項(xiàng)目數(shù)據(jù)分析工具介紹

Github

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括西安網(wǎng)站建設(shè)、西安網(wǎng)站制作、西安網(wǎng)頁(yè)制作以及西安網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,西安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到西安省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

GitHub 是一個(gè)面向開(kāi)源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С?Git 作為唯一的版本庫(kù)格式進(jìn)行托管,故名 GitHub。

GitHub 于 2008 年 4 月 10 日正式上線,除了 Git 代碼倉(cāng)庫(kù)托管及基本的 Web 管理界面以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協(xié)作圖譜(報(bào)表)、代碼片段分享(Gist)等功能。目前,其注冊(cè)用戶已經(jīng)超過(guò) 350 萬(wàn),托管版本數(shù)量也是非常之多,其中不乏知名開(kāi)源項(xiàng)目 Ruby on Rails、jQuery、python 等。

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

Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開(kāi)發(fā)而開(kāi)發(fā)的一個(gè)開(kāi)放源碼的版本控制軟件。

Torvalds 開(kāi)始著手開(kāi)發(fā) Git 是為了作為一種過(guò)渡方案來(lái)替代 BitKeeper。

分布式相比于集中式的最大區(qū)別在于開(kāi)發(fā)者可以提交到本地,每個(gè)開(kāi)發(fā)者通過(guò)克隆(git clone),在本地機(jī)器上拷貝一個(gè)完整的Git倉(cāng)庫(kù)。

下圖是經(jīng)典的git開(kāi)發(fā)過(guò)程。

Git的功能特性:

從一般開(kāi)發(fā)者的角度來(lái)看,git有以下功能:

1、從服務(wù)器上克隆完整的Git倉(cāng)庫(kù)(包括代碼和版本信息)到單機(jī)上。

2、在自己的機(jī)器上根據(jù)不同的開(kāi)發(fā)目的,創(chuàng)建分支,修改代碼。

3、在單機(jī)上自己創(chuàng)建的分支上提交代碼。

4、在單機(jī)上合并分支。

5、把服務(wù)器上最新版的代碼fetch下來(lái),然后跟自己的主分支合并。

6、生成補(bǔ)丁(patch),把補(bǔ)丁發(fā)送給主開(kāi)發(fā)者。

7、看主開(kāi)發(fā)者的反饋,如果主開(kāi)發(fā)者發(fā)現(xiàn)兩個(gè)一般開(kāi)發(fā)者之間有沖突(他們之間可以合作解決的沖突),就會(huì)要求他們先解決沖突,然后再由其中一個(gè)人提交。如果主開(kāi)發(fā)者可以自己解決,或者沒(méi)有沖突,就通過(guò)。

8、一般開(kāi)發(fā)者之間解決沖突的方法,開(kāi)發(fā)者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開(kāi)發(fā)者提交補(bǔ)丁。

從主開(kāi)發(fā)者的角度(假設(shè)主開(kāi)發(fā)者不用開(kāi)發(fā)代碼)看,git有以下功能:

1、查看郵件或者通過(guò)其它方式查看一般開(kāi)發(fā)者的提交狀態(tài)。

2、打上補(bǔ)丁,解決沖突(可以自己解決,也可以要求開(kāi)發(fā)者之間解決以后再重新提交,如果是開(kāi)源項(xiàng)目,還要決定哪些補(bǔ)丁有用,哪些不用)。

3、向公共服務(wù)器提交結(jié)果,然后通知所有開(kāi)發(fā)人員。

優(yōu)點(diǎn):

適合分布式開(kāi)發(fā),強(qiáng)調(diào)個(gè)體。

公共服務(wù)器壓力和數(shù)據(jù)量都不會(huì)太大。

速度快、靈活。

任意兩個(gè)開(kāi)發(fā)者之間可以很容易的解決沖突。

離線工作。

缺點(diǎn):

學(xué)習(xí)周期相對(duì)而言比較長(zhǎng)。

不符合常規(guī)思維。

代碼保密性差,一旦開(kāi)發(fā)者把整個(gè)庫(kù)克隆下來(lái)就可以完全公開(kāi)所有代碼和版本信息。


1、GitHub API
首先要說(shuō)的是Github的官方API,這是獲取GitHub倉(cāng)庫(kù)詳細(xì)的最佳方式。API非常好用,你可以使用curl或者其他任何語(yǔ)言打包庫(kù),獲取倉(cāng)庫(kù)的所有信息(其他公共在線Git托管平臺(tái)或者自建的Gitlab都有類似的API)。但是Github對(duì)API的調(diào)用做了限制,每小時(shí)的請(qǐng)求數(shù)量是有限制的,如果你要分析大型項(xiàng)目,則使用API。
git和github項(xiàng)目數(shù)據(jù)分析工具介紹
通過(guò)Github API,你基本上獲得訪問(wèn)瀏覽項(xiàng)目Github倉(cāng)庫(kù)時(shí)看到的所有信息,但是對(duì)倉(cāng)庫(kù)的Git信息內(nèi)部信息有限,你需要clone 倉(cāng)庫(kù)后通過(guò)git命令才能獲得完全信息。
2、GHCrawler
GHCrawler是由微軟開(kāi)發(fā)的一個(gè)健壯的GitHub API 爬蟲(chóng),可遍歷GitHub實(shí)體和消息,對(duì)其進(jìn)行搜索和跟蹤。如果要對(duì)某一組織或者項(xiàng)目的活動(dòng)進(jìn)行分析,則GHCrawler特別有用。GHCrawler也受Github API請(qǐng)求次數(shù)的限制,但是GHCrawler通過(guò)使用令牌池和輪換來(lái)優(yōu)化API令牌的使用。GHCrawler支持命令行式調(diào)用,同時(shí)也支持一個(gè)Web端界面操作
3、GH Archive
GH Archive是一個(gè)開(kāi)源的一個(gè)項(xiàng)目,用于記錄公共GitHub時(shí)間軸,對(duì)其進(jìn)行存檔,并使其易于訪問(wèn)以進(jìn)行進(jìn)一步分析。GitHub Archive獲取所有的GitHub events信息存儲(chǔ)在一組JSON文件中,以便根據(jù)需要下載并脫機(jī)處理。
另外,GitHub Archive也可以作為公共數(shù)據(jù)集在Google BigQuery上使用。該數(shù)據(jù)集每小時(shí)自動(dòng)更新一次,可以在幾秒鐘內(nèi)對(duì)整個(gè)數(shù)據(jù)集運(yùn)行任意類似SQL的查詢。
4、GHTorren
和GH Archive類似,GHTorrent項(xiàng)目也用來(lái)監(jiān)視Github公共事件時(shí)間表信息。對(duì)于每個(gè)事件,它都詳盡地檢索其內(nèi)容和相互依賴性。然后將結(jié)果JSON的信息存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù),同時(shí)還將其結(jié)構(gòu)提取到MySQL數(shù)據(jù)庫(kù)中。
GHTorrent和GH Archive有點(diǎn)類似,兩者區(qū)別是GH Archive旨在提供更詳盡的事件集合,按小時(shí)頻率獲取信息。而GH Torrent則以更結(jié)構(gòu)化的方式提供事件數(shù)據(jù),以使更輕松地獲取所有事件有關(guān)事件的信息,數(shù)據(jù)獲取頻率為月。
5、Kibble
Apache Kibble是一套用于收集,匯總和可視化軟件項(xiàng)目中活動(dòng)的工具。Kibble架構(gòu)由一個(gè)中央Kibble服務(wù)器和一組專門(mén)用于處理特定類型資源的掃描應(yīng)用程序并將已編譯的數(shù)據(jù)對(duì)象推送到Kibble服務(wù)器。
根據(jù)這些數(shù)據(jù),可以自定義一個(gè)儀表板,其中包含許多顯示項(xiàng)目數(shù)據(jù)的小部件。從這個(gè)意義上講,Kibble更像是一種工具,可以幫助創(chuàng)建項(xiàng)目數(shù)據(jù)信息展示W(wǎng)eb端。
6、CHAOSS
CHAOSS是Linux 基金會(huì)下項(xiàng)目,致力于創(chuàng)建數(shù)據(jù)析和指標(biāo)定義以幫助一個(gè)健康的開(kāi)源社區(qū)。CHAOSS計(jì)劃項(xiàng)目有很多工具可以挖掘和計(jì)算項(xiàng)目所需的指標(biāo)數(shù)據(jù):
Augur是一個(gè)Python庫(kù)、Flask Web應(yīng)用程序和REST服務(wù)器,用于提供有關(guān)開(kāi)源軟件開(kāi)發(fā)項(xiàng)目運(yùn)行狀況和可持續(xù)性的指標(biāo)。
Cregit則專注于生成視圖以可視化代碼更改的出處
GrimoireLabBitergia旗下迄今為止最成熟和雄心勃勃的工具。GrimoireLab的目的是提供一個(gè)開(kāi)源平臺(tái)實(shí)現(xiàn):幾乎可以從任何與開(kāi)源開(kāi)發(fā)相關(guān)的工具中收集自動(dòng)和增量數(shù)據(jù),自動(dòng)豐富數(shù)據(jù)以清理和擴(kuò)展上面收集的數(shù)據(jù),數(shù)據(jù)可視化,按時(shí)間范圍,項(xiàng)目,存儲(chǔ)庫(kù),貢獻(xiàn)者等進(jìn)行過(guò)濾搜索。
7、Sourced
Sourced自稱為開(kāi)發(fā)生命周期的數(shù)據(jù)平臺(tái)。與以前的工具相比,它更多地關(guān)注項(xiàng)目的代碼,而不是社區(qū)的協(xié)作。Sourced項(xiàng)目使用通用AST,可以實(shí)現(xiàn)與語(yǔ)言無(wú)關(guān)的方式對(duì)代碼庫(kù)細(xì)節(jié)查詢。
在Sourced項(xiàng)目組織中,可以找到幾個(gè)有趣的數(shù)據(jù)分析工具。包括:
go-git:用純Golang語(yǔ)言編寫(xiě)的高度可擴(kuò)展的git實(shí)現(xiàn)庫(kù)。
Hercule:Golang實(shí)現(xiàn)的對(duì)存儲(chǔ)庫(kù)的整個(gè)提交歷史記錄分析工具。
gitbase:Golang 實(shí)現(xiàn)的Git存儲(chǔ)庫(kù)SQL數(shù)據(jù)庫(kù)接口。
8、Hubble
Hubble用于可視化GitHub Enterprise的協(xié)作、使用情況和運(yùn)行狀況數(shù)據(jù)。它致力于幫助大公司了解其內(nèi)部組織,項(xiàng)目和貢獻(xiàn)者如何一起分配和協(xié)作。
Hubble Enterprise由兩個(gè)組件組成。更新器組件是一個(gè)Python腳本,它每天從GitHub Enterprise設(shè)備查詢相關(guān)數(shù)據(jù),并將結(jié)果存儲(chǔ)在Git存儲(chǔ)庫(kù)中。docs組件是一個(gè)Web應(yīng)用程序,用于可視化收集的數(shù)據(jù),并由GitHub Pages托管。
9、Onefetch
最后提一個(gè)非常強(qiáng)大的命令行下的git項(xiàng)目信息可視化的工具,支持對(duì)50多種語(yǔ)言,提及它是因?yàn)樗怯眯屡d的Rust語(yǔ)言編寫(xiě)的。

分享文章:git和github項(xiàng)目數(shù)據(jù)分析工具介紹
地址分享:http://muchs.cn/article18/jcjpgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、做網(wǎng)站、App開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司