GitHub 如何取代 SourceForge 成为主导的代码托管平台

:point_up_2: 原文链接。

:warning: 中文内容由机器翻译而来。

GitHub 之前的世界

在 GitHub 成立的四年前,也就是2004年,Linus 创建了 Git。Git 作为一个分布式版本控制系统,开始迅速普及,其价值显著。Git 用户可以在个人电脑上托管整个源代码的副本,无需与中央服务器通信,可以离线更新代码,分享副本,无需得到中央管理源的批准。与此同时,Git 的分支创建也非常快速和便捷。然而,尽管 Git 有着这些优点,它在企业代码库中的应用仍然步履艰难,这些企业通常使用私有的、中央管理的 SVN 服务器和传统的工作流。

跳到2008年,开源项目如 Rails 开始采用 Git,而私有组织仍然使用 SVN 和 Perforce 服务器来集中管理源代码。当时,开源软件主要在 SourceForge、Google Code 或个人托管的服务器上发布。

SourceForge 虽然在当时占据主导地位,但其功能欠缺。首先,该站点在 GitHub 成立一年后才支持 Git,同时,该网站和 Google Code 等替代品主要集中在向最终用户分发软件,而不是代码协作,只解决了开源项目分发的一半问题,并未提供评论、代码浏览、更改审查等功能。此外,在 SourceForge 上创建和管理仓库非常困难,例如,需要申请和人工批准才能创建新的仓库,并且不支持私有仓库,对项目的评论和问题的提出并不直观,分叉(forking)也是一种不常见的做法。

这使得 GitHub 得以填补市场上的空缺,成为在线代码托管的主要平台。

最后,GitHub 的发明

2008年的一个晚上,Tom Preston-Werner 和 Chris Wanstrath 在一个 Ruby on Rails 的聚会后,在旧金山的一家运动酒吧喝酒。Rails 社区开始越来越多地使用 Git,但像 SourceForge 这样可以托管 Git 仓库的中心网站却没有。另外,社交网络明显在兴起,但并没有适合他们这样的开源项目开发者的社交网站。Git 使得协同软件开发比以往任何时候都更容易,像 SourceForge 这样的网站可帮助发布版本 - 但没有一个网站能成为协作的家园。那么,如果任何人都可以托管源代码,讨论问题,请求维护者拉取分叉的更改 - 所有这些都支持像 Facebook 那样的个人资料页面和评论动态呢?

这两位即将成为 GitHub 的创始人开始在周末研发 GitHub 的第一版。他们利用周末开发出了 GitHub 的基础版本(当然,是用 Rails),直到它足够完整,可以应对 Chris 的日常工作。通过日常的实战,他们解决了问题,填补了任何阻碍的功能空白。

GitHub 这家公司是从这个小项目中涌现出来的,所以我们从来没有什么大的愿景或梦想或期望。我们只是想做点酷的事情。

Chris Wanstrath

Ruby on Rails 的创建者也是 GitHub 的早期用户,这帮助 GitHub 网站的早期流行度急剧上升。

2008 年 GitHub 的样子

GitHub 的快速增长

2008年,GitHub 创始人在一个周末开发出了 GitHub 的最早版本,很快在开源社区获得了爆炸性的增长,因为任何想使用 Ruby on Rails 的人都必须与 GitHub 交互。

在其成立的第一年,GitHub 承载了 46,000 个公共库。第二年增长到 90,000 个库和 100,000 名用户。到第三年,这个数字增长到了1百万个库,到2011年,GitHub 在规模上超过了 SourceForge 和 Google Code。

在早期的迅速增长期间,三位创始人一直保持节俭并自筹资金。他们较早地开始出售托管私有库的个人层级订阅。他们还尝试了其他的盈利方式,如一次性广告位、商品商店、Git 培训服务和招聘版等。

2009年,GitHub 推出了一款自托管版本,使大型企业能够运行 GitHub。他们还推出了针对组织和团队的 GitHub 计划,并在2011年将 Github Fi 重新品牌为正式的企业服务器产品。他们创新的代码托管商业模式使 GitHub 赚取了足够的资金来扩大团队并进一步完善产品经验。

然而,这种对收入的深度关注和自筹资金的增长方式并非只是一种选择,因为直到2010年,“开发工具公司都未能吸引到任何重要的投资。

2012年,GitHub 接受了 Andrewson Horowitz 的投资,金额为1亿美元,这被认为是有史以来最大的A轮融资。

GitHub 和代码托管的未来

Git 软件原始开发者 Linus Torvalds 极度赞扬 GitHub的托管服务,但批评其合并界面的实施。

尽管 GitHub 是原始的 Git 仓库托管解决方案,但现在 BitBucket,AWS Code Commit 等也提供了相同的解决方案。

GitHub 借助网络效应和产品功能如分支,论坛式评论和对开源开发的管理功能,仍然在开源代码中持有垄断地位。

商业公司最初选择 GitHub 是因为其在 Git 托管上的专长,但这样的能力现已变得普遍。

在私营公司中,GitHub 的社交功能几乎无用,因为讨论都在 Slack,Notion,Linear 和 Zoom 上进行。

作者预计,未来将在开源和封闭源的开发工具之间产生分化,世界将逐渐专注于针对不同用途的特定解决方案。Facebook 和 Google 等公司已经展示了专门的解决方案。

希望未来模块化能够进步到使每个工程师都可以独立选择他们想要托管源代码的地方,并完全独立于他们想用来更改源代码的工具。

完整的时间表

  1. 1999 年:SourceForge 上线,成为第一个免费的开源托管服务提供商。
  2. 2004年之前: 使用 CVSSVN 进行版本控制;SourceForge 在托管开源项目方面处于领先地位。
  3. 2004年: Linus Torvalds 创建了 Git,通过分布式系统彻底改变了版本控制。
  4. 2006 年: Google Code 推出,最初支持 SVN。
  5. 2008 年: GitHub 成立,提供专注于社交编码的 Git 存储库托管。
  6. 2009年: SourceForge 增加了对 Git 的支持;GitHub 引入了自托管版本,为 GitHub Enterprise 奠定了基础。
  7. 2010年: Facebook开发了Phabricator,这是一套基于Web的工具,用于代码审查和软件开发。
  8. 2011年: GitLab成立,强调完整的DevOps平台;Google Code 添加了 Git 支持。
  9. 2012年: GitHub 推出 GitHub Enterprise,满足大型组织对私有托管的需求。
  10. 2016年: Google Code 关闭,凸显了 GitHub 在代码托管方面日益增长的主导地位。
  11. 2018 年: GitHub 推出 GitHub Actions,在软件开发过程中实现工作流程自动化。
  12. 2021 年:Phabricator 不再积极维护,将更多用户推向 GitHub

找到了未满足的需求,而且还不是niche market,会伴随着git使用的增多而增多,有了好的idea和starting point
吸引了重量级人物加入带来流量
开源社区网络效应大概很强,代码协作强化了连接,又很能拓展节点