GitHub & Bitbucket & GitLab & Coding 的对比分析
目前基于 Git 做版本控制的代码托管平台有很多种,比较流行的服务有 Github、Bitbucket、 GitLab、 Coding,他们各自有什么特点,个人使用者和开发团队又该如何选择?
在这篇文章中,我们以客观的态度,以问题作为出发点,介绍和比较 GitHub、Bitbucket、GitLab、Coding 在基本功能,开源与协作,免费与付费计划,企业解决方案,集成 flow.ci 等方面,让大家了解这四者不仅仅是功能不同。
GitHub 是第一个供“用Git进行版本控制系统的软件开发项目”使用的基于Web的代码托管服务,是目前全球最大的开源社交编程及代码托管网站。GitHub 于 2008 年 4 月 10 日正式上线,除了基本的服务以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
BitBucket 是 2008 年创建的源代码托管网站,采用 Mercurial 和 Git 作为分布式版本控制系统,同时提供免费账户和商业计划。2010 年被 Atlassian 收购,与 Atlassian 的其他服务(Git GUI SourceTree、HipChat、Cloud9)顺利集成,主要面向慈善企业和企业用户/其主要市场是大型企业。
GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。
- Coding
Coding 是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。2016 年 3 月 CODING 宣布收购代码托管平台 GitCafe。也许是目前国内体验最接近 github 的产品。
基本特征
关于这 4 大代码托管服务平台有着各自不同的功能,但也是有一些基础特点,比如:
- 拉取请求
- 代码审查
- 内联编辑
- 问题跟踪
- Markdown支持
- 双向认证
- 高级权限管理
- 托管的静态网页
- 功能丰富的API
- Fork / Clone Repositories
- 代码段
- 第三方集成
欲了解更多的功能和细节,可以直接去 Bitbucket, GitHub, GitLab, Coding相关页面了解。
哪个是开源的服务或产品
在这四家代码托管服务,只有 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 等服务。如果你还有其他补充,欢迎评论留言。
flow.ci 是融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程。1 分钟即可完成开发测试环境搭建,开启第一个 Build。
本文来自 flow.ci 官方博客,转载请联系:)
GitHub & Bitbucket & GitLab & Coding 的对比分析的更多相关文章
- H5、React Native、Native应用对比分析
每日更新关注:http://weibo.com/hanjunqiang 新浪微博!iOS开发者交流QQ群: 446310206 "存在即合理".凡是存在的,都是合乎规律的.任何新 ...
- 使用Travis CI自动部署博客到github pages和coding pages
每次换系统或换电脑之后重新部署博客总是很苦恼?想像jekyll那样,一次性部署完成后,以后本地不用安装环境直接 git push 就能生成博客?那推荐你应该使用使用 Travis CI了. 这篇文章我 ...
- PHP服务器Apache与Nginx的对比分析
PHP服务器Apache与Nginx的对比分析 本篇文章给大家带来的内容是关于PHP服务器Apache与Nginx的对比分析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Apach ...
- Git,Github和Gitlab简介和基本使用
什么是Git Git是一个版本控制系统(Version Control System,VCS). 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 多年前,我在法国做第一 ...
- Git、GitHub、GitLab三者之间的联系以及区别
在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转) 1.什么是 Git? Git 是一个版本控制系统. 版本控制是一种用于记录一个或多个文件内容变化,方便 ...
- Python、R对比分析
一.Python与R功能对比分析 1.python与R相比速度要快.python可以直接处理上G的数据:R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析, ...
- DICOM:DICOM三大开源库对比分析之“数据加载”
背景: 上一篇博文DICOM:DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具,在日常使用过程中发现,“只要Sante DICOM Editor打不开的数据,基 ...
- Storm 学习之路(六)—— Storm项目三种打包方式对比分析
一.简介 在将Storm Topology提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插 ...
- Storm 系列(六)—— Storm 项目三种打包方式对比分析
一.简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任 ...
随机推荐
- CreateFile() 打开u盘 物理设备
//以下是用的vs2010 windows7 64 管理员权限编译成功的 HANDLE hDev = CreateFile(TEXT("\\\\.\\PhysicalDrive1" ...
- [转]MySQL关键性能监控(QPS/TPS)
原文链接:http://www.cnblogs.com/chenty/p/5191777.html 工作中尝尝会遇到各种数据库性能调优,除了查看某条SQL执行时间长短外,还需要对系统的整体处理能力有更 ...
- unity3d多线程坑
单独起了一个线程来处理网络相关操作,比较常规的做法.本身没啥特别的东西,碰到了一个不大不小的坑折腾了好久,记录下来吧. 简单的说就是子线程中抛出的异常,如果没有catch的话,会导致子线程悄无声息的退 ...
- C#将科大讯飞语音合成文件转换为MULAW音频格式
任务描述:通过科大讯飞语音合成组件在线完成文本转语音的合成,然后再转换为电话系统IVR要求的音频格式: wave mu-law 16位 8kHZ 64kbps. 完成步骤: 首先,我们要先通过科大讯飞 ...
- Learning ROS for Robotics Programming - Second Edition(《学习ROS机器人编程-第二版》)
Learning ROS for Robotics Programming - Second Edition <学习ROS机器人编程-第二版> ----Your one-stop guid ...
- XCode一直显示"scanning for working copies"的解决办法
一个SVN上的项目,在本地重新CheckOut打开后,一直提示"scanning for working copies"且不能使用SVN的更新.提交等功能,当时想着晾它一晚上,看能 ...
- poj 2142 拓展欧几里得
#include <cstdio> #include <algorithm> #include <cstring> #include <iostream> ...
- JBOSS内存参数详解
JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=25 ...
- CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记
1. 子网划分的好处 缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络. 2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...
- CCNA第二章TCP/IP简介考试要点学习笔记
1.描述网络是如何工作的 DoD过程/应用层 -- OSI应用.表示和会话层(定义了结点到结点的应用通信协议以及对用户界面规范的控制): DoD主机到主机层 -- OSI传输层(保证了数据包的 ...