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

目前在代码托管和版本控制上的主流工具 — Git,比较流行的服务有 Github、Bitbucket、 GitLab、 Coding,他们各自有什么特点,个人使用者和开发团队又该如何选择?

在这篇文章中,我们以客观的态度,以问题作为出发点,介绍和比较 GitHub、Bitbucket、GitLab、Coding 在基本功能,开源与协作,免费与付费计划,企业解决方案,集成 flow.ci 等方面,让大家了解这四者不仅仅是功能不同。

Github

GitHub
是第一个供“用Git进行版本控制系统的软件开发项目”使用的基于Web的代码托管服务,是目前全球最大的开源社交编程及代码托管网站。GitHub 于
2008 年 4 月 10
日正式上线,除了基本的服务以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。

Bitbucket

BitBucket 是 2008 年创建的源代码托管网站,采用 Mercurial 和 Git
作为分布式版本控制系统,同时提供免费账户和商业计划。2010 年被 Atlassian 收购,与 Atlassian 的其他服务(Git GUI
SourceTree、HipChat、Cloud9)顺利集成,主要面向慈善企业和企业用户/其主要市场是大型企业。

GitLab

GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。

Coding

Coding
是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。2016
年 3 月 CODING 宣布收购代码托管平台 GitCafe。也许是目前国内体验最接近 github 的产品。

基本特征

关于这 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 / 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 支持:

  • 导入Git,SVN,HG,TFS.

GitLab 支持:

  • 导入Git.
  • 更容易从其他服务导入GitHub,Bitbucket,Google code,Fogbugz。

Coding 支持:

  • 导入Git,SVN,HG.

Bitbucket支持:

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

免费计划哪家强

这 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 /用户/年(无最小用户)

集成 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 个代码托管服务都不是你所需要的,可以再看看国外的Assembla、CloudForge、gogs ,国内的 code.csdn、git@osc、集盒、TaoCode 等服务。如果你还有其他补充,欢迎评论留言。

作者:flowci

来源:51CTO

时间: 2024-10-10 23:42:42

GitHub & Bitbucket & GitLab & Coding的对比分析的相关文章

H5、React Native、Native应用对比分析

每日更新关注:http://weibo.com/hanjunqiang  新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移动市场的迅速崛起强调团队快速响应和迭代:三则是用户的体验被放大,用户要求极致的快感,除非你牛x(例如:12306最近修改手机号需要用户自己发短信接收验证码).

Ajax中解析Json的两种方法对比分析

  这里给大家介绍的是Ajax中解析Json的两种方法对比分析,十分的实用,本文为学习笔记,属新手文章,欢迎指教! eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: ? 1 2 3 4 5 var jsonDate = '{ "name":"周星驰","age":23 }'   var jsonObj = eval( '(' + jsonDate + ')' );

新浪搜狐网易腾讯iPhone手机微博对比分析

文章描述:新浪搜狐网易腾讯iPhone手机微博对比分析. 一.登陆页(以下图片顺序均为新浪微.腾讯.搜狐.网易) 微博登录界面(新浪.腾讯) 微博登录界面(搜狐.网易) 四款iphone微博客户端从页面上看,只有网易和腾讯的支持记住用户名和密码,实际操作后就会发现,其实大家都是默认记录的.并且新浪微博支持多账户切换,默认记录为最后一个登陆的用户.外观上,除了新浪微博客户端增加了"微博广场"的内容推广对新用户有写引导以外,其他三家基本相同. 新浪微博支持多帐户切换 多贴一张新浪的多账户切

对比分析垃圾站和正规站SEO优化的异同之处

刚接触做站的站长总是很容易纠结于一个问题,那就是到底是做正规站好还是做垃圾站好?似乎让人们比较容易接受的就是垃圾站的"寿命"总是长不过正规站,但又不得不承认做垃圾站能够更快地赚到钱,只要你的SEO优化技术到位.但一旦随着我们做站经历和经验的增长,这样的心态便会很快地消失,因为只要你做的站不违法,垃圾站确实是做站赢利的一条相对"捷径",而正规站更是值得站长长久发展的志向所在,如何让两种站都赢利才是作为站长最应该关心的问题. 无论做垃圾站,抑或是正规站,要想让网站获得较

北京seo:团购行业的两个案例对比分析

团购(B2T)行业2010年的新产物,现在已经迅速在全国各大城市成熟起来,成为众多消费者追求的一种现代流行.时尚的购物方式,因为它有效的防止了不成熟市场的暴利.个人消费的盲目.抵制了大众消费的泡沫.目前拉手网,G团网,美团,懒人团购网,团宝网,QQ团,大众点评团,糯米团等团购网站占尽很大的市场.而其它的团购网站也纷纷揭竿,来抢这一块市场. 今天北京seo对团800和我是团长这两个网站进行对比分析,主要是给朋友分析的,在这里也分享给各位朋友. 一.两个网站的友情链接对比: 1.团800友情链接页面

php中数据库连接方式pdo和mysqli对比分析

 这篇文章主要介绍了php中数据库连接方式pdo和mysqli从各个方面进行了对比分析,十分全面,这里推荐给大家,有需要的小伙伴来参考下.     1)总的比较     PDO MySQLi 数据库支持 12种不同的数据库支持 支持MySQL API OOP OOP + 过程 Connection Easy Easy 命名参数 支持 不支持 对象映射支持 支持 支持 预处理语句 (客户端) 支持 不支持 性能 快 快 支持存储过程 支持 支持 2 连接方式 先来看下两者连接数据库的方式:   代

javascript中call,apply,bind的用法对比分析

 这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们.     关于call,apply,bind这三个函数的用法,是学习javascript这门语言无法越过的知识点.下边我就来好好总结一下它们三者各自的用法,及常见的应用场景. 首先看call这个函数,可以理解成"借用","请求".想像一下如下的情景:你孤单一人漂泊在外,有急事想往家里打电话,可是很不巧,手机欠费了,或者没电了,或者掉坑里了

高票房的《致青春》《钢铁侠3》营销点对比分析

五月的天是火热的,五月的电影营销也同样火热.赵薇的导演处女作<致我们终将逝去的青春>(以下笔者就简称<致青春>)和好莱坞大片<钢铁侠3>真可谓赚足了眼球.光是票房纪录这块估计都已经让光线传媒和DMG这两家公司喜笑颜开,但是这两部影片的上映前后的营销工作也异常激烈.那么笔者就来对比分析这两部在内地如此卖座的电影一些营销点. 先来看一下两部影片的辉煌战绩: <钢铁侠3>:首日上映便连创4项内地影视票房记录---首日票房冠军(之前是<变形金刚3>1.1

ArrayList和LinkedList的几种循环遍历方式及性能对比分析

主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解. 阅读本文前希望你已经了解ArrayList顺序存储和LinkedList链式的结构,本文不对此进行介绍. 相关:HashMap循环遍历方式及其性