这种元概念使大学生哲学家说:“哇!” 当今的软件是如此复杂,以至于我们需要编写软件来帮助我们理解和构建需要编写的软件。 代码生成代码代码生成更多代码...
名为Git的代码存储库是每个人最喜欢的用于管理软件的工具,但是即使是这种简洁的开源软件也是不够的。 现在,大多数程序员和他们所属的团队都嫁接到了Git的在线版本,该版本增加了许多额外的分析和表示层,从而使我们有可能渡过大量的代码沼泽。
现在有三个最大的竞争者,它们是存放正则表达式,匿名函数和天才的强烈递归树遍历闪光的最佳场所:GitHub,Bitbucket和GitLab。 所有这些都在争相成为您存储源代码的最佳场所。
这个比那个好吗? 是您的团队打造超赞贵族的最佳场所吗? 让他们互相对抗,看看哪个规则。
GitHub最大
也许是因为它是第一个专门托管Git存储库的大型网站。 也许是因为它在开源社区中表现出色。 无论如何,如果您使用纯粹报告的代码量指标,GitHub就是领先者。 GitHub拥有2800万用户和8500万个存储库。 Bitbucket报告了600万用户,而GitLab却是个谜,没有回答这个问题。
有人认为这很重要。 希望在项目之间跳转的开源开发人员可以使用一次登录并链接所有工作。 每个人都可以关注GitHub上的热门开发人员,就像爱猫人士关注YouTube上最好的猫视频的创建者一样。 似乎主导互联网的网络效应使GitHub遥遥领先。
其他人不太确定。 是的,他们喜欢链接自己的公共代码,但是许多人不想链接他们为客户所做的工作。 那应该是分开的并且是非公开的。 在这种情况下,网络效应并不重要。
Bitbucket和GitLab更便宜
这三项服务均提供许多免费选项,但全部都是通过向开发人员(通常是专业人员)收取费用来赚钱,以托管私人项目。 GitHub的起价为每个开发人员每月7美元。 Bitbucket的起价为每月2美元,GitLab的起价为每月4美元。
但是这些数字只是粗略的指导,因为您很有可能要升级。 Bitbucket的一个更好的层每月花费5美元。 GitLab有一个高级版本,每月收费19美元-您必须每年付费才能获得该价格。
对于拥有较大团队的公司,几乎可以肯定会有隐藏的折扣,这些折扣使我们很难比较。 您可能会认为Git托管是一种商品,但是这些公司已经找到了添加许多额外功能的方法,以至于您开始比较自己所获得的收益时,头脑就会开始旋转。
Bitbucket和GitLab允许无限的私有存储库
您免费获得的东西截然不同。 Bitbucket和GitLab均可让您免费存储自己的私有存储库。 您只有在团队成长并变得更加专业时才开始付款。 GitHub仅在您是学生或公开项目时才免费存储您的项目。 这对于开源非常有用,但对于您的所有私有项目而言却不是。
这些免费套餐可以相当慷慨。 Bitbucket允许最多五个合作者组成的小型团队。 GitLab允许无限的合作者。
值得注意的是,这些价格和等级适用于云托管版本。 如果您想自托管,它可能会更便宜。 也有非常慷慨的学术计划和开源社区版本。
Bitbucket和GitLab持续集成
这些公司不仅通过存储代码,而且还通过构建和部署它们来扩大规模。 GitLab引入了基于Jenkins的持续集成,然后在良性循环中增加了部署支持和监视。 您可以提交代码,对其进行部署,对其进行监视,然后开始计划下一组修改,而无需离开GitLab。
同样,Bitbucket提供了Pipelines ,这是一个类似的构建和部署工具,只需单击几下即可完成几乎相同的操作。 也许它没有提供那么多的监控,但是它与亚马逊的云紧密集成。
GitHub使您可以使用自己的持续集成服务器
GitHub用户曾经构建过代码吗? 当然。 许多人使用第三方工具(例如CircleCI或Travis CI),这些工具是由对GitHub的提交触发的。 有些甚至托管自己的Jenkins版本,可从GitHub托管的开源存储库中获得。
当然,第三方工具可能不在同一公司的保护之下,但是它们完成的工作大致相同。 然后,如果您想做一些稍有不同的事情,那么分离可能是一个优势。
值得注意的是,没有什么可以阻止您使用Bitbucket或GitLab推出自己的持续集成解决方案。 他们就像其他任何Git客户端一样签出代码。
GitLab可让您在线开发
最初让您浏览静态代码的工具逐渐演变为成熟的开发平台。 GitLab的界面越来越复杂,并开始接近公司所谓的集成开发环境或IDE。 它不像某些提供集成调试功能的以桌面为中心的整体式工具(如Eclipse或Xcode)那样复杂,但这并不意味着您不能使用它通过干净的多文件提交来进行越来越复杂的开发。
GitHub和Bitbucket都有更简单的版本,可让您在线编辑文件,然后提交结果。 它们更适合快速修整和修复。
Bitbucket具有代码感知搜索
看起来似乎有点小事,但是Bitbucket的搜索算法可以理解许多主要语言,从而可以对结果进行排名。 函数或变量的定义会在顶部弹出,然后是用法。 如果您想弄清楚某个关键字的作用,则无需滚动结果页面即可找到答案。
Bitbucket来自制造Jira的同一家公司
Jira是用于组织开发过程的领先工具之一,它可以跟踪票证并让团队知道谁对哪个存储库执行什么操作以及何时完成存储库。 Jira可以与所有人集成,但归Atlassian所有,这确保Jira与Bitbucket兼容。
GitHub和GitLab都在工作流中内置了自己的问题跟踪工具,它们的功能几乎相同。 要了解更多细节,GitHub和GitLab用户可以使用Jira或任何其他类似工具。
GitLab是开源的
如果您不喜欢GitLab的任何特定部分,则可以下载Ruby源代码 ,对其进行修改并自己托管。 它是开源的,正等着您分叉。 GitHub在其存储库中提供了一些有用的难题,而Atlassian使用批准的许可证为所有开源项目提供了慷慨的支持 。 但是,GitLab在社区版中为您提供了整个平台的原始代码。
还有其他一些开源的Git服务器项目,以及像Gitblit ,用Java编写的, 诱惑 ,用Python编写的,并视护目镜 ,写在围棋。 但是您必须全部托管它们。
GitLab与Google Cloud紧密集成
您无需将Google Cloud与GitLab结合使用。 通过与Google Kubernetes Engine集成, GitLab使其变得更加容易。 只需单击几下,即可将代码移入正在运行的容器集群。 即使您不使用Google Kubernetes Engine,GitHub仍然喜欢使用Kubernetes。 如果您部署到Kubernetes集群,则可以从GitLab监视所有内容-CI环境,部署,Pod和Kubernetes指标。
Bitbucket与AWS集成
同样,您始终可以随时随地部署代码,但是Atlassian Marketplace中的Bitbucket插件会将代码推送到Amazon S3存储桶中,并使用AWS CodeDeploy在EC2上运行它。 您需要做的就是对其进行一次配置,然后就可以使用了。
Bitbucket有很多扩展
AWS CodeDeploy应用程序不是Atlassian市场中的唯一选择。 在撰写本文时,第三方编写了304个应用程序来扩展Bitbucket。 一些附加功能(如提交通知或提交图)以及其他功能可通过跟踪工作流程来帮助进行项目内务处理。 如果您觉得自己很专横,则可以安装“ 提交策略”插件,该插件会仔细检查提交消息,以确保它们提及问题编号和其他详细信息。 如果您在Marketplace中看不到想要的内容,则可以编写自己的内容。
Git(普通)是免费和私有的
会有一些人不想使用这些豪华的选项。 Git是一个非常简单的命令行工具,其中包含用于挖掘存储库本身的大量命令。 您可以使用命令行自行推,拉和跟踪代码。 如果您擅长记住命令行说明,并且不想使用任何基于Web的漂亮代码,差异和更多内容显示,那么纯朴的Git将非常适合您。
使用两个或全部三个!
这似乎有些过分,但是没有理由只选择一个。 Git使向上游推送提交变得很简单,并且没有理由不能添加多个上游。 如果您需要这些平台中的两个或全部三个平台的功能,则只需配置存储库即可推送到所有平台。 如果幸运的话,您可以留在免费套餐中。 而且,如果您不愿意,它们也不会太昂贵。