Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

Git 自 2005 年发布以来,以其分布式、文件快照、轻量分支等先进特性,迅速成为 CVS、SVN 等传统集中式版本控制系统的有力竞争者,在软件行业尤其是开源界流行开来。另一方面,Git 的创始人 Linus Torvalds 也是 Git 的金字招牌,身为 Linux 系统创始人的 Linus Torvalds 当初开发 Git,目的是用它来替代商业软件 BitKeeper 管理 Linux 内核代码。

2008 年创立的 GitHub,对 Git 发展起了巨大推动作用。依托 Git 建立的服务,GitHub 让开发流程和代码协作变得更简单,在短短 10 年内改变了人们的编程方式,实现了令人难以想象的增长和成功。截止 2019 年底,GitHub 汇聚了全球超过 4000 万用户,仓库数量早已破亿。

自 GitHub 流行以来,市面诞生了各种不同的托管服务,功能各不相同、收费策略各异。有的仅针对公共(开源)仓库免费的,有的对私人仓库免费但有一些限制条件。记得大概 2009、10 年的样子,当时 GitHub 对私人项目是收费的,不想付钱(qiong)但又想使用 Git 服务的我们选择了名为 CodaSet 的托管网站,当时这个网站支持免费私人仓库。不过这个网站 2011 年就关闭了,离创立不到两年,大多数人应该没有听说过。

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

在 GitHub 流行之前,另一个著名的托管网站是 Google Code,于 2005 年推出,起初支持 HG 和 SVN,后来加入对 Git 支持。不过在 GitHub 风靡之后,搜索巨人于 2016 年彻底关闭了 Google Code ,并建议开发者将项目迁移至 GitHub。

由此看出,你应该找一个靠谱、稳定的托管平台,甚至用自己的服务器、云服务、PAAS 平台等搭建私有托管平台。不过从另一个角度看,Git 的分布模式,相对于 SVN 等集中管理模式,迁移仓库变得简单许多。

 

 

公共托管

GitHub

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

GitHub 目前已成为软件行业的开发基础设施,如果你希望你的项目得到更多人关注,与关注者近距离交流,更好地融入开源社区,GitHub 无疑是最好的选择。而其 Wiki、Issue、Team 功能也相当成熟好用,另外对 Travis-CI、Gitter 等第三方工具结合很好,适合进行 DevOps 实践。

2018 年,微软以 75 亿美元价格收购 GitHub。有了财大气粗的微软做后盾,GitHub 大动作不断,先是推出了免费私有仓库,个人使用无数量限制,但每个仓库限制最多 3 人协作开发。去年 GitHub 推出 Actions 功能,迎来内置的 CI / CD 功能,推进开发编译测试部署流程自动化,并对所有开源项目免费。去年 GitHub 还推出了名为 Sponsors 的工具,用户通过该功能付款为开源项目提供资金支持,类似于"打赏"功能。

对国内用户来说,GitHub 的缺点是可能是其访问速度慢、不稳定,甚至 2013 年还被直接封锁。

 

BitBucket

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

BitBucket 是澳大利亚 Atlassian 公司推出的代码托管平台,Atlassian 公司以其产品项目跟踪软件 JIRA 和团队协同软件 Confluence 等企业产品闻名,客户包括 Facebook、Adobe、Twitter 等行业巨头。如果需要使用 Atlassian 的企业服务,BitBucket 是不错的选择。另外,BitBucket 对私人仓库更友好,最多可支持 5 人协作。

 

GitLab

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

GitLab 是另一个著名的托管服务,起初由几个乌克兰程序员使用 Ruby 语言 + Rails 框架开发。2018 年,GitHub 被微软收购,导致大批不信任微软的开发者将项目迁移至 GitLab。同年 GitLab 宣布完成了 1 亿美元融资,资方包含谷歌母公司 Alphabet 旗下的风险投资部门 GV。GitLab 预计将会在 2020 年 11 月 IPO,这应该是公司上市前最后一轮融资。

GitLab 功能上与 GitHub 类似,优势是支持无限多合作者私有代码库。同 GitHub 一样,GitLab 在国内的访问速度并不佳。

 

码云 Gitee

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

码云 Gitee 是国内托管平台的代表,全中文界面,功能实用丰富,更懂国内开发者。码云在访问速度方面优势明显,本地技术团队提供免费技术支持。码云同样对私有仓库免费,但限制 5 人协作,总仓库最大 5GB,单仓库最大 500 MB。

 

 

自建服务

GitLab

Git 代码托管有哪些选择,从 GitHub、GitLab 公共托管到自建服务

 

GitLab 除了提供开源托管和商业托管,还提供 gitlab-ce(GitLab Community Edition)供开发者或企业搭建私有托管服务。经过多年开发,GitLab 功能齐全,集成比较强的 CI / CD 功能,是许多开发者和企业的首选。

GitLab 起初由 Ruby 语言开发,内存占用大,性能不佳,后来部分功能使用 Go 语言重写。GitLab 庞大的安装包和繁琐的安装过程也一直为人诟病,新手或怕麻烦的用户可以使用 Bitnami 快速部署。

 

GitBucket

GitBucket 由一位日本开发者创建,采用 Scala 语言 + Scalatra 框架开发,开发比较活跃。最新版本为 4.33.0,于 2019 年 12 月 31 日发布,打包后 war 体积为 54.7MB。由于内置 Jetty 服务器,该 war 包可脱离 Tomcat 等容器直接运行:java -jar gitbucket.war,当然前提是要安装好 Java 虚拟机环境。

GitBucket 3.13 之前版本界面类似 GitHub,还曾收到 Github 的邮件,要求他们更改 UI 以示与 GitHub 的区别。

可以在 https://gitbucket.herokuapp.com 体验其 Demo,用户名 / 密码:root / root

 

Gogs / Gitea

Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务,Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

Gitea 由 Gogs 派生而来,两者的区别是 Gogs 主要由个人维护,Gitea 由多人开源社区维护。

Gogs / Gitea 轻量、高性能、易部署,在中小团队间广受欢迎,其中 Gitea 也是笔者目前采用的方案。

 

 

BAT

国内三巨头 BAT(百度、阿里、腾讯)也推出了 Git 相关服务,提供 DevOps 一站式服务。不过相对于其他 Git 代码托管网站,代码托管并不是其主推业务。这些功能与云服务、虚拟主机等业务深度结合,可提高其云服务竞争力,让更多企业用户为之买单。

  • 百度效率云

  • 腾讯工蜂

  • 阿里云云效

 

posted @ 2021-03-25 22:56  panchanggui  阅读(978)  评论(0编辑  收藏  举报