GitHub & Bitbucket & GitLab & Coding 的對比分析

fir.im發表於2016-10-13

目前基於 Git 做版本控制的程式碼託管平臺有很多種,比較流行的服務有 Github、Bitbucket、 GitLab、 Coding,他們各自有什麼特點,個人使用者和開發團隊又該如何選擇?

flow.ci

在這篇文章中,我們以客觀的態度,以問題作為出發點,介紹和比較 GitHub、Bitbucket、GitLab、Coding 在基本功能,開源與協作,免費與付費計劃,企業解決方案,整合 flow.ci 等方面,讓大家瞭解這四者不僅僅是功能不同。

GitHub 是第一個供“用Git進行版本控制系統的軟體開發專案”使用的基於Web的程式碼託管服務,是目前全球最大的開源社交程式設計及程式碼託管網站。GitHub 於 2008 年 4 月 10 日正式上線,除了基本的服務以外,還提供了訂閱、討論組、文字渲染、線上檔案編輯器、協作圖譜(報表)、程式碼片段分享(Gist)等功能。

GitHub首頁

BitBucket 是 2008 年建立的原始碼託管網站,採用 Mercurial 和 Git 作為分散式版本控制系統,同時提供免費賬戶和商業計劃。2010 年被 Atlassian 收購,與 Atlassian 的其他服務(Git GUI SourceTree、HipChat、Cloud9)順利整合,主要面向慈善企業和企業使用者/其主要市場是大型企業。

BitBucket首頁

GitLab 是一個利用 Ruby on Rails 開發的開源應用程式,實現一個自託管的 Git 專案倉庫,可通過 Web 介面進行訪問公開的或者私人專案。

GitLab首頁

  • Coding 
    Coding 是一個面向開發者的雲端開發平臺,目前提供程式碼託管,執行空間,質量控制,專案管理等功能。此外,還提供社會化協作功能,包含了社交元素,方便開發者進行技術討論和協作。2016 年 3 月 CODING 宣佈收購程式碼託管平臺 GitCafe。也許是目前國內體驗最接近 github 的產品。

Coding首頁

基本特徵

關於這 4 大程式碼託管服務平臺有著各自不同的功能,但也是有一些基礎特點,比如:

  • 拉取請求
  • 程式碼審查
  • 內聯編輯
  • 問題跟蹤
  • Markdown支援
  • 雙向認證
  • 高階許可權管理
  • 託管的靜態網頁
  • 功能豐富的API
  • Fork / Clone Repositories
  • 程式碼段
  • 第三方整合

欲瞭解更多的功能和細節,可以直接去 BitbucketGitHubGitLabCoding相關頁面瞭解。

哪個是開源的服務或產品

在這四家程式碼託管服務,只有 GitLab 有一個開原始碼版本。GitLab 社群版的原始碼也開放在他們的網站上。

GitHub 以開源友好而聞名,並且擁有最大數量(19.4M +)的開源專案但其本身不是開源的。

Bitbucket也不是開源的,但在購買託管服務的方案中提供了「產品定製」的功能。

Coding 同樣也不是開源的,不過 ,9 月中旬 Coding 宣佈開放 WebIDE 的原始碼

開源與協作,誰是最優之選

GitHub,GitLab,Bitbucket 和 Coding 都具有「發現」功能。除了 GitLab,每個都提供了「follow」功能。Coding 允許開發者在個人配置檔案中新增自定義標籤,方便找到其他相同興趣的開發者。

在協作上,GitHub 是開源協作方面的首當其衝的選擇。目前 GitHub 擁有全世界最大數量的公共開源專案,全球頂級科技公司( Google AppleFacebookTwitterMicrosoft/AlibabaTencent)紛紛加入 GitHub ,全球頂級開源專案(LinuxNodejsSwiftRuby / Docker)都優先選擇在 GitHub 上開源,這裡還有全球頂級程式設計大牛貢獻程式碼。這裡不僅僅是專業開發人員的交友樂園,也聚集了很多對軟體開發感興趣的人學習。甚至,一個活躍的 GitHub 賬號也能成為理想工作的敲門磚。

匯入的程式碼倉庫型別

Importing Repositories

某種意義上,分散式版本控制系統決定了選擇哪個程式碼儲存服務,Bitbucket 在這方面脫穎而出,因為這是唯一同時支援 Mercurial.

Coding,GitHub 和 Bitbucket 支援匯入基於多個不同 VCS 的 repos,而 GitLab 只支援 Git。

毫無疑問,Git 是目前最受歡迎的 VCS,但如果你正在使用 Mercurial 或 SVN 儲存庫,那麼遷移至 GitLab 可能會很複雜。GitLab 提供了簡單方便的方式,用於從 GitHub 或其他平臺上匯入程式碼倉。

GitHub 支援:

  • 匯入Git,SVN,HG,TFS.

GitLab 支援:

  • 匯入Git.
  • 更容易從其他服務匯入GitHub,Bitbucket,Google code,Fogbugz。

Coding 支援:

  • 匯入Git,SVN,HG.

Bitbucket支援:

  • 匯入Git,CodePlex,Google Code,HG,SourceForge,SVN。

免費計劃哪家強

Free Plans

這 4 家服務提供商都提供免費計劃,但當我們仔細深究時,他們有一些重大差異。比如:

GitHub 的 Free Plans 允許託管無限的公有程式碼倉庫,隨時進行clone, fork 和 contribute,對磁碟使用沒有限制。但是,專案不能超過 1 GB和單個檔案不能超過 100 MB。

Bitbucket** 的 Small teams plan 允許 5 個成員加入,公有/私有倉庫均免費。當專案大快到達 1GB 時,會有郵件通知。

GitLab 的 cloud-hosted plan 允許無限數量的使用者在無限數量的公共和私有專案上進行協作,並且每個儲存庫有 10GB 的空間限制,看起來非常有誘惑力。

Coding 的免費計劃允許 10 個成員在無限數量的公共和私有儲存庫上協作,但強加了 1 GB 的整體儲存限制。

由上面可以看到,GitLab社群版是唯一的自託管免費計劃。如果你喜歡完全控制程式碼庫並維護自己的伺服器資源,這絕對是最好的選擇。有一個缺點是它只提供社群支援和一些更高階的功能,也不提供程式碼搜尋。

誰的付費雲託管計劃更據優勢

Paid Cloud-Hosted Plans
這四家的付費雲託管計劃都提供了無限數量的私人倉庫和電子郵件支援。

GitHub的個人帳戶提供了和免費帳戶基本相同的功能,可託管無限數量的私人倉庫。對於具有個人帳戶的使用者數量沒有限制,但是他們無法使用組織功能(例如,基於小組的訪問許可權),並且結算是獨立完成的。GitHub組織計劃起價為 25/525/月,5人,每個額外的使用者收費為9 /月。

Bitbucket 雲託管的成長團隊計劃包含 10/10/10/10人/月和100/月,不限制團隊成員的數量。

Coding 有 2 個付費計劃,最多 20 人的開發計劃和 50 人的高階計劃。這兩種方案都可以託管無限數量的程式碼庫,儲存空間限制分別為 5 GB和 10 GB。值得一提的是,Coding 在這方面的計費選項更靈活,價格更具競爭力,也有更強大的技術支援,包括即時聊天和電話支援。

對比企業解決方案

Paid Self-Hosted Plans

比起 Cloud-Hosted Plans ,GitHub,GitLab 和 Bitbucket 的企業收費版本提供了更加強大的功能,各自的網站上提供了相對完整的收費表格,詳情檢視在:

Coding 的企業版沒有透露任何定價和功能的細節。如果你正在考慮他們的解決方案,你需要聯絡團隊。他們先評估需求,然後根據評估結果提供定製報價。

GitHub 的企業版起價為 $2500 /10人,每年計費一次。除了部署自主伺服器,GitHub Enterprise還可以部署到 AWS 和 Azure。

如果選擇 Bitbucket ,只要 10/101125180010/10人團隊,11−25人團隊則要1800。對比來看 GitHub 看起來有點貴。 Bitbucket Enterprise 版本有 2000 個使用者的限制。如果你需要更多,可以去Bitbucket Data Center看看.

GitLab 企業版的收費策略是每位使用者每年 39 $,對使用者數沒有限制。它比 Bitbucket 貴一點,同時如果使用一些額外的工具和服務,價格也會上漲很多:

- 高階支援$ 99 /使用者/年(最少100個使用者)

- GitLab Geo $ 99 / user / year(no min users)

- Pivotal Tile $ 99 / user / year(no min users)

- 檔案鎖$ 99 /使用者/年(無最小使用者)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

整合 flow.ci

除了寫程式碼,我們還需要自動化測試,CodeReview 、CI 整合等來提升程式碼的質量。GitHub,Bitbucket,GitLab和Coding 與 flow.ci 無縫連線,任意的程式碼倉庫關聯到 flow.ci 只需幾個步驟

總結

基於上面的介紹和比較,如果還有不清楚的地方,還可以看下 stackshare 上的 GitHub vs. Bitbucket vs. GitLab 的對比分析.

對於這四大程式碼倉庫託管服務,功能最強大的,價效比最高的,最受歡迎的都不是最好的。在特定情況下,在只有適合自己的才是最好的。那麼通過這篇對比,我們也可以得到一些基礎的實際的結論:

  • 如果你想要一個免費開源的解決方案,GitLab 也許比較吸引人;

  • 如果你正在開發一個開源專案想取得更多的關注,那 GitHub 毫無疑問是第一選擇;

  • 如果你想要免費的私有庫,並在使用 Atlassian 的其他產品(例如:Confluence,Jira, SourceTree…),程式碼託管在 Bitbucket 絕對用起來會很爽;

  • 如果你想要免費私有程式碼倉庫,想獲得更多的中文支援或正在使用 Coding WebIDE,Coding 明顯更適合。

如果這 4 個程式碼託管服務都不是你所需要的,可以再看看國外的AssemblaCloudForgegogs ,國內的 code.csdngit@osc集盒TaoCode 等服務。如果你還有其他補充,歡迎評論留言。

相關文章