【IT168 评论】代码存储库一直都是程序员的好帮手,尤其是在大型团队协作工作时,但是如何选择适当的代码存储库主机却让很多程序员感到困惑。如今,代码存储库多种多样,本文选取了三大主流的代码存储库,进行横向对比,希望能够对程序员有所帮助。
什么是好的代码存储库?
版本控制系统(或存储库)可以有三种主要类型:
本地 - 所有开发人员都在同一个文件系统中。
集中式 - 项目团队在中央服务器上具有单个项目副本,团队成员将更改提交给一个副本。
分布式 - 开发人员在本地存储库中工作,更改在存储库之间共享。
本文将着重讨论Git repos,因为Git repos是对开发团队最有效率的功能,首先我们看看一个好的repo中存在哪些组件。
·Pull request:当用户对源代码进行更改并将其推送到存储库时,他们的协作者将被通知以获得讨论和审查的更改。
·基于Web的代码审查。
·Editing:如果一个仓库建议实时和协作的编辑,它增加了很多回购的质量。
·Bug tracking:没有任何项目没有bug。所以当存储库允许协同跟踪和解决错误时,这是非常好的。
·支持缩写语法,使代码可读。
·双因素身份验证,确保用户帐号的保护。
·创建库的fork和clone。
·用户可以与任何需要的用户共享代码段或文件片段,包括团队成员,其他用户甚至自己。
·与第三方服务集成。
·导入资料库:当用户从一个服务转移到另一个服务时,存储库允许他们导入现有项目。
·开源许可证:有时,企业需要在自己的服务器上部署内部存储库,而不是使用现有的公共Web资源。本文介绍的三个存储库开源的只有GitLab,该系统具有良好的界面,易于安装。
三大代码存储库如何选?
目前,所有程序员使用的Git存储库主要有三个,本文会一一分析它们的利弊。
GitHub
GitHub是git存储库和协作项目开发的首选网站。该系统旨在允许用户轻松创建基于Git的特殊版本控制系统。为什么这么受欢迎?Git通过非线性开发历史的可视化工具和导航工具的帮助,支持流畅的版本合并和分割。现在,GitHub拥有5000多万个开源项目。
优点:
GitHub有很多为人称道的功能,本文只列举其中几个:
错误跟踪,此功能属于协作功能,可以通过在项目中检测到的软件错误记录来提高代码质量。
快速搜索,存储库提供方便的项目结构,允许有效的搜索和排序。此外,功能良好的SEO允许用户在公共存储库中找到任何代码字符串。
社区,截至2017年4月,GitHub的用户数量已经超过2000万。这个世界范围内极大的开发团队是共享经验和技能的重要来源。用户可以进行沟通,评论,编辑和跟踪新闻。
共享,项目源代码不仅可以使用Git进行复制,还可以作为归档下载。
协作开发,GitHub为团队管理提供了高效的功能。
兼容性,源代码位于GitHub的项目可以轻松地定制到任何云主机服务。
支持Git,SVN,HG,TFS导入。
缺点:
GitHub的服务不是完全免费的,如果想要享受GitHub提供的所有功能,需要付费。
大小限制:文件大小不能超过100Mb,存储库可以托管信息1Gb。
GitLab
GitLab服务也是基于Git版本控制开发的。尽管GitLab功能与其主要竞争对手GitHub类似,但仍有一些主要特点。GitLab有几种不同的形式,如适用于企业的GitLab SAAS,以及用户的个性化解决方案GitLab Community Edition。
优点:
免费,这意味着用户可以拥有无限数量的私有存储库。当然为了满足客户要求,GitLab也有企业版,在其基本功能之上增加了一些额外的功能,从而改善了与在线工具,工作流和服务器管理等的交互。
GitLab在开源许可证下运行。
错误跟踪和基于Web的代码编辑。
与LDAP(轻量级目录访问协议)集成,允许在Internet上定位和访问各种资源。GitLab EE支持多种LDAP服务和组同步。
支持Git导入
缺点:
界面相对较慢
存储库常见的技术问题。
BitBucket
BitBucket服务也非常类似于GitHub,但是它的大部分功能也略有不同。BitBucket最适合小型开发团队,随着团队的成长,BitBucket提供了与GitHub和GitLab相比更温和的定价条件。BitBucket还为团队提供了灵活的部署模式。
优点:
对于小团队免费,这意味着最多5名成员的团队将获得无限数量的免费存储库。
一个集成的查询管理系统。
通过社交媒体和GitHub认证。
集成Jira工具。BitBucket和Jira在整个开发阶段都做了整合,通过集成的错误跟踪组件,JIRA自动更新有关检测到的问题的信息。
导入现有Git项目。
支持Git,CodePlex,Google Code,HG,SourceForge,SVN导入。
缺点:
不开源
系统不稳定
如何选择?
如前文所述,每个存储库都有其优缺点,也都有广大的程序员基础。
这三个存储库管理服务中,只有GitLab是开源的。GitLab社区版的源代码在他们的网站上可用,企业版本是专有的。拥有最大数量的开源项目的GitHub本身不是开源的。Bitbucket也不是开源的,但是购买stand-alone 版本时,将提供完整的源代码与产品配置选项。
综合多种情况,我们建议:
如果您需要开源解决方案,请选择GitLab 。
如果您喜欢使用Atlassian服务,BitBucket 是非常好的选择。
GitHub 是承载开源代码项目的领先平台。