阅读 147

GitHub还是GitLab?谈谈两者的区别

  开发人员在开发编程项目时可能会面临这样一个问题,GitHub 和 GitLab 各有优缺点,用哪一个更好呢?那么今天我们就来简单介绍一下 GitHub 和 GitLab 并谈谈它们各自的优势和短板。

  您真的需要用到分布式版本控制系统吗?

  VCS 又名源代码管理(SCM)系统,旨在让开发人员、设计人员同时开发一个项目。它能够确保每个人都可以访问最新代码,并同步自己的修改。

  然而,这说起来容易做起来难。

  为了实现这一点,Linux 之父 Linus Torvalds 发明了免费的开源分布式版本控制系统 Git。Git 的表现要比 Apache Subversion、并发版本系统(CVS)、Perforce 和 Rational ClearCase 要出色的多,因此之后大多数 VCS 服务的名称中都包含了“Git”。

  如果开发人员在内部构建程序,那么只需用到本地 Git。Git 甚至还可以个人服务器或云上的集中式 VCS,开发人员可以与世界各地的伙伴一起开发项目。

  但是,如果开发人员的需求增加,那么使用 GitHub 或是 GitLab 也是不错的选择。

  GitHub 是基于 Git 的在线代码仓库,也是全球最大的代码托管平台,开发人员可以在 GitHhub 上进行交流和学习。2008 年 2 月,Chris Wanstrath、PJ Hyett、Tom Preston-Werner 和 Scott Chacon 使用 Ruby on Rails 开发 GitHub。由于它是最早的分布式版本控制系统,GitHub 之后发展成为大多数开源代码的存储库。截至 2021 年 11 月,GitHub 拥有超过 7300 万开发人员以及超过 2 亿个存储库,其中至少有 2800 万个公共存储库。

  2011 年乌克兰开发人员 Dmitriy Zaporozhets 和荷兰开发人员 Sytse Sijbrandij 开发了 GitLab,它拥有在单个应用程序中开发、保护和操作软件的能力。GitLab 约有 3000 万用户,其中有 100 万活跃用户。

  GitLab 最初用 Ruby 编写,之后又用 Go 重写了部分内容。最初,它作为源代码管理平台,用于在软件开发团队内进行协作,后来发展为涉及软件开发生命周期甚至是整个 DevOps 生命周期的平台。现阶段 GitLab 使用的软件技术包括 Go、Ruby on Rails 以及 Vue.js。

  GitHub VS. GitLab

  在某种程度上,GitHub 和 GitLab 非常相似。两者都在 Linux 上运行,并且都带有问题跟踪器,提供大量第三方集成和导入工具。

  它们还为提供了命令行界面(CLI)以及基于 Web 的界面。在 GitLab 中,用户界面采用 Vue.js 编写,用的是自己的设计系统。而 GitHub 的用户界面 Desktop 可作为 Windows 或 macOS 程序使用。同时开发人员还可以将 Visual Studio 与 GitHub 一起使用。

  虽然两者都支持开源,但存储库使用的是不同的编程模型。GitLab 使用的是开放核心业务方法,社区版保持免费和开源,而企业版有更多的功能。而对于 GitHub 来说,尽管它的代码涉及许多开源代码,但它不是开源项目。

  不过两者都提供基于 Web 的存储库,可以进行开源且基于 Git 的代码管理,并支持远程存储库的本地文件更改。不管是只需要 Git 的基础功能,还是需要开放所有功能,GitHub 和 GitLab 都是可以更改的。

  除此之外,由于 2018 年 10 月 26 日 GitHub 被微软以 75 亿美元收购,许多人选择放弃 GitHub。对于一部分人来说,就算微软支持开发开源软件,微软也永远是个“反派”。但现实就是放弃 GitHub 并选择 GitLab 的人并不多。

  GitHub 如今成为 VCS 领域中的巨头。根据编程工具公司 JetBrains 的数据,有**77%**的开发人员使用 GitHub,而使用 GitLab 的为 40%,使用 BitBucket 的为 25%。

  造成这一局面的主要原因在 GitLab 内置了持续集成/持续交付(CI/CD)以及 DevOps 流程。而 GitHub 则是由开发人员选择 CI/CD 工具并进行集成。一般来说,GitHub 用户会选择第三方 CI 程序,例如 Jenkins、CircleCI 或 TravisCI。

  另一个区别在于 GitHub 看重速度,而 GitLab 看重安全性。

  GitHub 还支持将新分支与主分支合并。这样,用户就可以进行快速部署,出现问题还可以恢复到上一个版本。

  在 GitLab 中,用户可以在 master 分支外创建多个稳定的分支,但这意味着用户需要进行多次的测试,合并时需要进行多次代码审查。

  但是 GitLab 提供了完整的软件开发解决方案,这是一个完整的 DevOps 平台。GitLab 可以与许多第三方程序和平台集成,其中包括 Jira、Microsoft Teams、Slack、Gmail 等等。

  另一方面,GitHub 提供的服务较少,但有许多与外部程序和服务集成的方法,开发人员可以通过 GitHub Marketplace 集成数百个其他程序。

  对于个人或是小型团队而言,GitHub 和 GitLab 都提供免费版本,其中含有无限的公共库和私人库。但是如果是大型互联网公司的话,免费版本的功能显然是不够的,公司可以针对不同的需求而进行选择。两者均为基于 Web 的 Git 仓库,可以允许开发人员进行储存、分享、发布和合作开发项目。若是更看重代码的安全性,GitLab 无疑是更好的选择;但是若是开源项目,GitHub 仍然是首选。

  【参考资料】

  https://www.jetbrains.com/lp/devecosystem-2020/team-tools/

  https://www.zdnet.com/article/microsoft-finalizes-its-7-5-billion-github-acquisition/

  https://www.zdnet.com/article/the-key-differences-between-github-and-gitlab/

来自: CSDN


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐