GitHub & Bitbucket & GitLab & Coding的對比分析
目前在代碼托管和版本控制上的主流工具 — Git,比較流行的服務(wù)有 Github、Bitbucket、 GitLab、 Coding,他們各自有什么特點,個人使用者和開發(fā)團(tuán)隊又該如何選擇?
在這篇文章中,我們以客觀的態(tài)度,以問題作為出發(fā)點,介紹和比較 GitHub、Bitbucket、GitLab、Coding 在基本功能,開源與協(xié)作,免費(fèi)與付費(fèi)計劃,企業(yè)解決方案,集成 flow.ci 等方面,讓大家了解這四者不僅僅是功能不同。
Github
GitHub 是***個供“用Git進(jìn)行版本控制系統(tǒng)的軟件開發(fā)項目”使用的基于Web的代碼托管服務(wù),是目前全球***的開源社交編程及代碼托管網(wǎng)站。GitHub 于 2008 年 4 月 10 日正式上線,除了基本的服務(wù)以外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協(xié)作圖譜(報表)、代碼片段分享(Gist)等功能。
Bitbucket
BitBucket 是 2008 年創(chuàng)建的源代碼托管網(wǎng)站,采用 Mercurial 和 Git 作為分布式版本控制系統(tǒng),同時提供免費(fèi)賬戶和商業(yè)計劃。2010 年被 Atlassian 收購,與 Atlassian 的其他服務(wù)(Git GUI SourceTree、HipChat、Cloud9)順利集成,主要面向慈善企業(yè)和企業(yè)用戶/其主要市場是大型企業(yè)。
GitLab
GitLab 是一個利用 Ruby on Rails 開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的 Git 項目倉庫,可通過 Web 界面進(jìn)行訪問公開的或者私人項目。
Coding
Coding 是一個面向開發(fā)者的云端開發(fā)平臺,目前提供代碼托管,運(yùn)行空間,質(zhì)量控制,項目管理等功能。此外,還提供社會化協(xié)作功能,包含了社交元素,方便開發(fā)者進(jìn)行技術(shù)討論和協(xié)作。2016 年 3 月 CODING 宣布收購代碼托管平臺 GitCafe。也許是目前國內(nèi)體驗最接近 github 的產(chǎn)品。
基本特征
關(guān)于這 4 大代碼托管服務(wù)平臺有著各自不同的功能,但也是有一些基礎(chǔ)特點,比如:
- 拉取請求
- 代碼審查
- 內(nèi)聯(lián)編輯
- 問題跟蹤
- Markdown支持
- 雙向認(rèn)證
- 高級權(quán)限管理
- 托管的靜態(tài)網(wǎng)頁
- 功能豐富的API
- Fork / Clone Repositories
- 代碼段
- 第三方集成
欲了解更多的功能和細(xì)節(jié),可以直接去 Bitbucket, GitHub, GitLab, Coding相關(guān)頁面了解。
哪個是開源的服務(wù)或產(chǎn)品
在這四家代碼托管服務(wù),只有 GitLab 有一個開源代碼版本。GitLab 社區(qū)版的源代碼也開放在他們的網(wǎng)站上。
GitHub 以開源友好而聞名,并且擁有***數(shù)量(19.4M +)的開源項目但其本身不是開源的。
Bitbucket也不是開源的,但在購買托管服務(wù)的服務(wù)中提供了「產(chǎn)品定制」的功能。
Coding 同樣也不是開源的,不過 ,9 月中旬 Coding 宣布開放 WebIDE 的源代碼。
開源與協(xié)作,誰是***之選
GitHub,GitLab,Bitbucket 和 Coding 都具有「發(fā)現(xiàn)」功能。除了 GitLab,每個都提供了「follow」功能。Coding 允許開發(fā)者在個人配置文件中添加自定義標(biāo)簽,方便找到其他相同興趣的開發(fā)者。
在協(xié)作上,GitHub 是開源協(xié)作方面的首當(dāng)其沖的選擇。目前 GitHub 擁有全世界***數(shù)量的公共開源項目,全球***科技公司(Google / Apple/ Facebook/ Twitter/ Microsoft/Alibaba/ Tencent)紛紛加入 GitHub ,全球***開源項目(Linux/ Nodejs/ Swift/ Ruby /Docker)都優(yōu)先選擇在 GitHub 上開源,這里還有全球***編程大牛貢獻(xiàn)代碼。這里不僅僅是專業(yè)開發(fā)人員的交友樂園,也聚集了很多對軟件開發(fā)感興趣的人學(xué)習(xí)。甚至,一個活躍的 GitHub 賬號也能成為理想工作的敲門磚。
導(dǎo)入的代碼倉庫類型
某種意義上,分布式版本控制系統(tǒng)決定了選擇哪個代碼存儲服務(wù),Bitbucket 在這方面脫穎而出,因為這是唯一同時支持 Mercurial.
Coding,GitHub 和 Bitbucket 支持導(dǎo)入基于多個不同 VCS 的 repos,而 GitLab 只支持 Git。
毫無疑問,Git 是目前***的 VCS,但如果你正在使用 Mercurial 或 SVN 存儲庫,那么遷移至 GitLab 可能會很復(fù)雜。GitLab 提供了簡單方便的方式,用于從 GitHub 或其他平臺上導(dǎo)入代碼倉。
GitHub 支持:
- 導(dǎo)入Git,SVN,HG,TFS.
GitLab 支持:
- 導(dǎo)入Git.
- 更容易從其他服務(wù)導(dǎo)入GitHub,Bitbucket,Google code,F(xiàn)ogbugz。
Coding 支持:
- 導(dǎo)入Git,SVN,HG.
Bitbucket支持:
- 導(dǎo)入Git,CodePlex,Google Code,HG,SourceForge,SVN。
免費(fèi)計劃哪家強(qiáng)
這 4 家服務(wù)提供商都提供免費(fèi)計劃,但當(dāng)我們仔細(xì)深究時,他們有一些重大差異。比如:
GitHub 的 Free Plans 允許托管***的公有代碼倉庫,隨時進(jìn)行clone, fork 和 contribute,對磁盤使用沒有限制。但是,項目不能超過 1 GB和單個文件不能超過 100 MB。
Bitbucket 的 Small teams plan 允許 5 個成員加入,公有/私有倉庫均免費(fèi)。當(dāng)項目大快到達(dá) 1GB 時,會有郵件通知。
GitLab 的 cloud-hosted plan 允許***數(shù)量的用戶在***數(shù)量的公共和私有項目上進(jìn)行協(xié)作,并且每個存儲庫有 10GB 的空間限制,看起來非常有誘惑力。
Coding 的免費(fèi)計劃允許 10 個成員在***數(shù)量的公共和私有存儲庫上協(xié)作,但強(qiáng)加了 1 GB 的整體存儲限制。
由上面可以看到,GitLab社區(qū)版是唯一的自托管免費(fèi)計劃。如果你喜歡完全控制代碼庫并維護(hù)自己的服務(wù)器資源,這絕對是***的選擇。有一個缺點是它只提供社區(qū)支持和一些更高級的功能,也不提供代碼搜索。
誰的付費(fèi)云托管計劃更據(jù)優(yōu)勢
這四家的付費(fèi)云托管計劃都提供了***數(shù)量的私人倉庫和電子郵件支持。
GitHub的個人帳戶提供了和免費(fèi)帳戶基本相同的功能,可托管***數(shù)量的私人倉庫。對于具有個人帳戶的用戶數(shù)量沒有限制,但是他們無法使用組織功能(例如,基于小組的訪問權(quán)限),并且結(jié)算是獨立完成的。GitHub組織計劃起價為 $25 /月,5 人,每個額外的用戶收費(fèi)為 $9 /月。
Bitbucket 云托管的成長團(tuán)隊計劃包含 $10/10人/月 和 $100/月,不限制團(tuán)隊成員的數(shù)量。
Coding 有 2 個付費(fèi)計劃,最多 20 人的開發(fā)計劃和 50 人的高級計劃。這兩種方案都可以托管***數(shù)量的代碼庫,存儲空間限制分別為 5 GB和 10 GB。值得一提的是,Coding 在這方面的計費(fèi)選項更靈活,價格更具競爭力,也有更強(qiáng)大的技術(shù)支持,包括即時聊天和電話支持。
對比企業(yè)解決方案
比起 Cloud-Hosted Plans ,GitHub,GitLab 和 Bitbucket 的企業(yè)收費(fèi)版本提供了更加強(qiáng)大的功能,各自的網(wǎng)站上提供了相對完整的收費(fèi)表格,詳情查看在:
Coding 的企業(yè)版沒有透露任何定價和功能的細(xì)節(jié)。如果你正在考慮他們的解決方案,你需要聯(lián)系團(tuán)隊。他們先評估需求,然后根據(jù)評估結(jié)果提供定制報價。
GitHub 的企業(yè)版起價為 $2500 /10人,每年計費(fèi)一次。除了部署自主服務(wù)器,GitHub Enterprise還可以部署到 AWS 和 Azure。
如果選擇 Bitbucket ,只要 $10 /10人團(tuán)隊,11-25人團(tuán)隊則要 1800$。對比來看 GitHub 看起來有點貴。 Bitbucket Enterprise 版本有 2000 個用戶的限制。如果你需要更多,可以去 Bitbucket Data Center 看看.
GitLab 企業(yè)版的收費(fèi)策略是每位用戶每年 39 $,對用戶數(shù)沒有限制。它比 Bitbucket 貴一點,同時如果使用一些額外的工具和服務(wù),價格也會上漲很多:
- 高級支持$ 99 /用戶/年(最少100個用戶)
- GitLab Geo $ 99 / user / year(no min users)
- Pivotal Tile $ 99 / user / year(no min users)
- 文件鎖$ 99 /用戶/年(無最小用戶)
集成 flow.ci
除了寫代碼,我們還需要自動化測試,CodeReview 、CI 集成等來提升代碼的質(zhì)量。GitHub,Bitbucket,GitLab和Coding 與 flow.ci無縫連接,任意的代碼倉庫關(guān)聯(lián)到 flow.ci 只需幾個步驟。
總結(jié)
基于上面的介紹和比較,如果還有不清楚的地方,還可以看下 stackshare 上的 GitHub vs. Bitbucket vs. GitLab 的對比分析.
對于這四大代碼倉庫托管服務(wù),功能***大的,性價比***的,***的都不是***的。在特定情況下,在只有適合自己的才是***的。那么通過這篇對比,我們也可以得到一些基礎(chǔ)的實際的結(jié)論:
- 如果你想要一個免費(fèi)開源的解決方案,GitLab 也許比較吸引人;
- 如果你正在開發(fā)一個開源項目想取得更多的關(guān)注,那 GitHub 毫無疑問是***選擇;
- 如果你想要免費(fèi)的私有庫,并在使用 Atlassian 的其他產(chǎn)品(例如:Confluence,Jira, SourceTree...),代碼托管在 Bitbucket 絕對用起來會很爽;
- 如果你想要免費(fèi)私有代碼倉庫,想獲得更多的中文支持或正在使用 Coding WebIDE,Coding 明顯更適合。
如果這 4 個代碼托管服務(wù)都不是你所需要的,可以再看看國外的Assembla、CloudForge、gogs ,國內(nèi)的 code.csdn、git@osc、集盒、TaoCode 等服務(wù)。如果你還有其他補(bǔ)充,歡迎評論留言。