目前基於 Git 作版本控制的代碼託管平臺有不少種,比較流行的服務有 Github、Bitbucket、 GitLab、 Coding,他們各自有什麼特色,我的使用者和開發團隊又該如何選擇?node
在這篇文章中,咱們以客觀的態度,以問題做爲出發點,介紹和比較 GitHub、Bitbucket、GitLab、Coding 在基本功能,開源與協做,免費與付費計劃,企業解決方案,集成 flow.ci 等方面,讓你們瞭解這四者不只僅是功能不一樣。linux
GitHub 是第一個供「用Git進行版本控制系統的軟件開發項目」使用的基於Web的代碼託管服務,是目前全球最大的開源社交編程及代碼託管網站。GitHub 於 2008 年 4 月 10 日正式上線,除了基本的服務之外,還提供了訂閱、討論組、文本渲染、在線文件編輯器、協做圖譜(報表)、代碼片斷分享(Gist)等功能。git
BitBucket 是 2008 年建立的源代碼託管網站,採用 Mercurial 和 Git 做爲分佈式版本控制系統,同時提供免費帳戶和商業計劃。2010 年被 Atlassian 收購,與 Atlassian 的其餘服務(Git GUI SourceTree、HipChat、Cloud9)順利集成,主要面向慈善企業和企業用戶/其主要市場是大型企業。github
GitLab 是一個利用 Ruby on Rails 開發的開源應用程序,實現一個自託管的 Git 項目倉庫,可經過 Web 界面進行訪問公開的或者私人項目。docker
Coding 是一個面向開發者的雲端開發平臺,目前提供代碼託管,運行空間,質量控制,項目管理等功能。此外,還提供社會化協做功能,包含了社交元素,方便開發者進行技術討論和協做。2016 年 3 月 CODING 宣佈收購代碼託管平臺 GitCafe。也許是目前國內體驗最接近 github 的產品。編程
基本特徵swift
關於這 4 大代碼託管服務平臺有着各自不一樣的功能,但也是有一些基礎特色,好比:ruby
欲瞭解更多的功能和細節,能夠直接去 Bitbucket, GitHub, GitLab, Coding相關頁面瞭解。服務器
在這四家代碼託管服務,只有 GitLab 有一個開源代碼版本。GitLab 社區版的源代碼也開放在他們的網站上。app
GitHub 以開源友好而聞名,而且擁有最大數量(19.4M +)的開源項目但其自己不是開源的。
Bitbucket也不是開源的,但在購買託管服務的方案中提供了「產品定製」的功能。
Coding 一樣也不是開源的,不過 ,9 月中旬 Coding 宣佈開放 WebIDE 的源代碼。
GitHub,GitLab,Bitbucket 和 Coding 都具備「發現」功能。除了 GitLab,每一個都提供了「follow」功能。Coding 容許開發者在我的配置文件中添加自定義標籤,方便找到其餘相同興趣的開發者。
在協做上,GitHub 是開源協做方面的首當其衝的選擇。目前 GitHub 擁有全世界最大數量的公共開源項目,全球頂級科技公司( Google / Apple/ Facebook/ Twitter/Microsoft/Alibaba/ Tencent)紛紛加入 GitHub ,全球頂級開源項目(Linux/ Nodejs/Swift/ Ruby / Docker)都優先選擇在 GitHub 上開源,這裏還有全球頂級編程大牛貢獻代碼。這裏不只僅是專業開發人員的交友樂園,也彙集了不少對軟件開發感興趣的人學習。甚至,一個活躍的 GitHub 帳號也能成爲理想工做的敲門磚。
某種意義上,分佈式版本控制系統決定了選擇哪一個代碼存儲服務,Bitbucket 在這方面脫穎而出,由於這是惟一同時支持 Mercurial.
Coding,GitHub 和 Bitbucket 支持導入基於多個不一樣 VCS 的 repos,而 GitLab 只支持 Git。
毫無疑問,Git 是目前最受歡迎的 VCS,但若是你正在使用 Mercurial 或 SVN 存儲庫,那麼遷移至 GitLab 可能會很複雜。GitLab 提供了簡單方便的方式,用於從 GitHub 或其餘平臺上導入代碼倉。
GitHub 支持:
GitLab 支持:
Coding 支持:
Bitbucket支持:
這 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社區版是惟一的自託管免費計劃。若是你喜歡徹底控制代碼庫並維護本身的服務器資源,這絕對是最好的選擇。有一個缺點是它只提供社區支持和一些更高級的功能,也不提供代碼搜索。
這四家的付費雲託管計劃都提供了無限數量的私人倉庫和電子郵件支持。
GitHub的我的賬戶提供了和免費賬戶基本相同的功能,可託管無限數量的私人倉庫。對於具備我的賬戶的用戶數量沒有限制,可是他們沒法使用組織功能(例如,基於小組的訪問權限),而且結算是獨立完成的。GitHub組織計劃起價爲 $25 /月,5 人,每一個額外的用戶收費爲 $9 /月。
Bitbucket 雲託管的成長團隊計劃包含 $10/10人/月 和 $100/月,不限制團隊成員的數量。
Coding 有 2 個付費計劃,最多 20 人的開發計劃和 50 人的高級計劃。這兩種方案均可以託管無限數量的代碼庫,存儲空間限制分別爲 5 GB和 10 GB。值得一提的是,Coding 在這方面的計費選項更靈活,價格更具競爭力,也有更強大的技術支持,包括即時聊天和電話支持。
比起 Cloud-Hosted Plans ,GitHub,GitLab 和 Bitbucket 的企業收費版本提供了更增強大的功能,各自的網站上提供了相對完整的收費表格,詳情查看在:
Coding 的企業版沒有透露任何訂價和功能的細節。若是你正在考慮他們的解決方案,你須要聯繫團隊。他們先評估需求,而後根據評估結果提供定製報價。
GitHub 的企業版起價爲 $2500 /10人,每一年計費一次。除了部署自主服務器,GitHub Enterprise還能夠部署到 AWS 和 Azure。
若是選擇 Bitbucket ,只要 $10 /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 /用戶/年(無最小用戶)
除了寫代碼,咱們還須要自動化測試,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 個代碼託管服務都不是你所須要的,能夠再看看國外的Assembla、CloudForge、gogs ,國內的 code.csdn、git@osc、集盒、TaoCode 等服務。若是你還有其餘補充,歡迎評論留言。