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

来源于:https://www.v2ex.com/t/313263

目前在代码托管和版本控制上的主流工具 — 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
  • 代码段
  • 第三方集成

欲了解更多的功能和细节,可以直接去 BitbucketGitHubGitLabCoding相关页面了解。

哪个是开源的服务或产品

在这四家代码托管服务,只有 GitLab 有一个开源代码版本。 GitLab 社区版的源代码也开放在他们的网站上。

GitHub 以开源友好而闻名,并且拥有最大数量( 19.4M +)的开源项目但其本身不是开源的。

Bitbucket 也不是开源的,但在购买托管服务的服务中提供了「产品定制」的功能。

Coding 同样也不是开源的,不过 , 9 月中旬 Coding 宣布开放WebIDE 的源代码

开源与协作,谁是最优之选

GitHub , GitLab , Bitbucket 和 Coding 都具有「发现」功能。除了 GitLab ,每个都提供了「 follow 」功能。 Coding 允许开发者在个人配置文件中添加自定义标签,方便找到其他相同兴趣的开发者。

在协作上, GitHub 是开源协作方面的首当其冲的选择。目前 GitHub 拥有全世界最大数量的公共开源项目,全球顶级科技公司( GoogleAppleFacebookTwitterMicrosoft/AlibabaTencent)纷纷加入 GitHub ,全球顶级开源项目(LinuxNodejsSwiftRuby / 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 个代码托管服务都不是你所需要的,可以再看看国外的AssemblaCloudForgegogs ,国内的 code.csdn[email protected]集盒TaoCode 等服务。如果你还有其他更好的补充,欢迎留言。



flow.ci 是融入了 workflow 机制的持续集成( CI )服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程。 1 分钟即可完成开发测试环境搭建,开启第一个 Build 。

时间: 2024-10-14 22:38:51

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

DICOM:DICOM三大开源库对比分析之“数据加载”

背景: 上一篇博文DICOM:DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具,在日常使用过程中发现,"只要Sante DICOM Editor打不开的数据,基本可以判定此DICOM文件格式错误(准确率达99.9999%^_^)".在感叹Sante DICOM Editor神器牛掰的同时,想了解一下其底层是如何实现的.通过日常使用以及阅读软件帮助手册推断其底层依赖库很可能是dcmtk,就如同本人使用dcmtk.fo-dicom.dcm4che3等

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

目录(?)[-] 一React Native的出现 二3款应用效果 三工程方案 四对比分析 开发方式 性能 体验 更新 维护 开发方式 性能 体验 更新 维护 五综合 开发方式 性能 体验 更新 维护 @王利华,vczero “存 在即合理”.凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移动市场的迅速崛起强调团队快速响应和迭代:三则是用户的体验被放大,用户要求

Git、GitHub、GitLab三者之间的联系以及区别

在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转) 1.什么是 Git? Git 是一个版本控制系统. 版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统. 以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目: project_v1.project_v1.1.project_v2等等,通过这种方式记录我们项目的不同版本的修改, 有的时候我们还会在不同版本的文件中写一个说明,记录此版本项目新增.修改,删

Storm 系列(六)—— Storm 项目三种打包方式对比分析

一.简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插件,直接使用 mvn package 打包: 第二种:使用 maven-assembly-plugin 插件进行打包: 第三种:使用 maven-shade-plugin 进行打包. 以下分别进行详细的说明. 二.mvn package 2.1 mvn package的局限 不在 POM 中配置

(转)netty、mina性能对比分析

转自: http://blog.csdn.net/mindfloating/article/details/8622930 流行 NIO Framework netty 和 mina 性能测评与分析 测试方法 采用 mina 和 netty 各实现一个 基于 nio 的EchoServer,测试在不同大小网络报文下的性能表现 测试环境 客户端-服务端: model name: Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz cache size: 6144 KB

octotree神器 For Github and GitLab 火狐插件

Code tree for GitHub and GitLabExtension to show code tree for GitHub and GitLab. Useful for developers who frequently read source and do not want to download or checkout too many repositories.Features: * Easy-to-navigate code tree like IDEs* Support

移动三大平台和三大开发模式对比分析

一:移动三大平台及其对比分析: 1)移动三大平台 2)移动三大平台对比分析 二:三大开发模式及其对比分析: 1)三大开发模式 2)三大开发模式对比分析 移动三大平台和三大开发模式对比分析,布布扣,bubuko.com

Java中的NIO和IO的对比分析

总的来说,java中的IO和NIO主要有三点区别: IO                  NIO 面向流     面向缓冲 阻塞IO  非阻塞IO  无   选择器(Selectors) 1.面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的. Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方.此外,它不能前后移动流中的数据.如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区. Java

QQ视频与webrtc打洞对比分析

工作后的第一篇博客,mark一下. 一.NAT 1. 含义 NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题. 2. 实现方式 静态转换.动态转换.端口多路复用. 静态转换:是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的.通过静态配置,