Github-初识

GitHub 是一个开发者平台,允许开发者创建、存储、管理和共享他们的代码。它使用 Git 软件,为每个项目提供 Git 的分布式版本控制以及访问控制、错误跟踪、软件功能请求、任务管理、持续集成和 wiki。

它通常用于托管开源软件开发项目。截至 2023 年 1 月,GitHub 报告称拥有超过 1 亿开发者和超过 4.2 亿个存储库,其中包括至少 2800 万个公共存储库。截至 2023 年 6 月,它是世界上最大的源代码托管者。

GitHub 历史、发展

GitHub 平台的开发始于 2007 年 10 月 19 日。该网站由 Tom Preston-Werner、Chris Wanstrath、P. J. Hyett 和 Scott Chacon 于 2008 年 4 月推出,当时该网站作为测试版已经发布了几个月。它的名字被选为 Git 和 hub 的合成词。

组织结构

GitHub, Inc. 最初是一个没有中层管理人员的扁平组织,而是依靠自我管理。员工可以选择从事他们感兴趣的项目(开放分配),但首席执行官设定薪水。

2014 年,该公司增加了一层中层管理人员,以回应针对其高层领导的严重骚扰指控。由于这起丑闻,Tom Preston-Werner 辞去了首席执行官一职。

财务

GitHub 是一家白手起家的初创企业,在最初几年,它提供了足够的收入,仅由其三位创始人资助并开始招聘员工。

2012 年 7 月,即公司成立四年后,Andreessen Horowitz 投资了 1 亿美元风险投资,估值为 7.5 亿美元。

2015 年 7 月,GitHub 在 B 轮融资中又筹集了 2.5 亿美元(2023 年约为 3.14 亿美元)的风险投资。领投方为红杉资本,其他投资者包括 Andreessen Horowitz、Thrive Capital、IVP(Institutional Venture Partners)和其他风险投资基金。此轮融资对该公司的估值约为 20 亿美元。

截至 2023 年,GitHub 估计将创造 10 亿美元的收入。

History 历史

GitHub 在 AWS 峰会上

GitHub 服务由 Chris Wanstrath、P. J. Hyett、Tom Preston-Werner 和 Scott Chacon 使用 Ruby on Rails 开发,于 2008 年 2 月启动。该公司 GitHub, Inc. 成立于 2007 年,位于旧金山。

2009 年 2 月 24 日,GitHub 宣布,在上线的第一年内,GitHub 已积累了超过 46,000 个公共存储库,其中 17,000 个是在上个月形成的。当时,大约有 6,200 个存储库至少被分叉过一次,4,600 个存储库已被合并。 据 GitHub 称,同年该网站的用户超过 10 万,并已发展到托管 9 万个唯一公共存储库,其中 1.2 万个至少被分叉过一次,总共 13.5 万个存储库。 2010 年,GitHub 托管了 100 万个存储库。一年后,这个数字翻了一番。ReadWriteWeb 报道称,2011 年 1 月至 5 月期间,GitHub 的总提交次数超过了 SourceForge 和 Google Code。2013 年 1 月 16 日,GitHub 用户突破 300 万大关,托管了 500 多万个存储库。

地图的阴影部分表示用户数量占每个国家互联网人口的比例。

到年底,存储库数量翻了一番,达到 1000 万个存储库。 2015 年,GitHub 在日本开设了办事处,这是其在美国以外的第一家办事处。2016 年,GitHub 在《福布斯》云计算 100 强榜单中排名第 14 位。它未出现在 2018 年、2019 年和 2020 年的榜单上。 2018 年 2 月 28 日,GitHub 遭受了历史上第三大分布式拒绝服务 (DDoS) 攻击,传入流量达到每秒约 1.35 兆兆位的峰值。 2018 年 6 月 19 日,GitHub 扩展了其 GitHub 教育计划,向所有学校提供免费教育套餐。

Acquisition by Microsoft 被微软收购

2016 年,微软位居 GitHub 上开源贡献者最多的十大组织之首。

从 2012 年开始,微软成为 GitHub 的重要用户,使用它来托管开源项目和开发工具,例如 .NET Core、Chakra Core、MSBuild、PowerShell、PowerToys、Visual Studio Code、Windows 计算器、Windows 终端及其大部分产品文档(现在可以在 Microsoft Docs 上找到)。

2018 年 6 月 4 日,微软宣布有意以 75 亿美元(2023 年约为 89.6 亿美元)收购 GitHub。该交易于 2018 年 10 月 26 日完成。GitHub 继续作为社区、平台和企业独立运营。在微软的领导下,该服务由 Xamarin 的 Nat Friedman 领导,向微软云和 AI 执行副总裁 Scott Guthrie 汇报。Nat Friedman 于 2021 年 11 月 3 日辞职;他被 Thomas Dohmke 取代。

开发人员 Kyle Simpson(JavaScript 培训师兼作家)和 Open-Xchange 首席执行官 Rafael Laguna 对微软的收购表示担忧,称他们对微软处理先前收购(如诺基亚移动业务和 Skype)的方式感到不安。

此次收购符合首席执行官 Satya Nadella 领导下的微软业务战略,该战略将重点放在云计算服务上,同时开发和贡献开源软件。《哈佛商业评论》认为,微软打算收购 GitHub 以接触其用户群,这样就可以将其用作亏本销售,以鼓励使用其其他开发产品和服务。

对此次出售的担忧激发了人们对竞争对手的兴趣:Bitbucket(归 Atlassian 所有)、GitLab 和 SourceForge(归 BIZX, LLC 所有)报告称,他们发现有意将项目从 GitHub 迁移到各自服务的新用户数量激增。

2019 年 9 月,GitHub 收购了代码分析工具 Semmle。2020 年 2 月,GitHub 以 GitHub India Private Limited 的名义在印度成立。2020 年 3 月,GitHub 宣布以未公开的金额收购 JavaScript 打包供应商 npm。该交易于 2020 年 4 月 15 日完成。

2020 年 7 月初,GitHub 存档计划成立,以永久存档其开源代码

Github服务

Services 服务

可以使用标准 Git 命令行界面访问和管理 GitHub 上的项目;所有标准 Git 命令都可以使用它。GitHub 还允许用户浏览网站上的公共存储库。还提供多个桌面客户端和 Git 插件。此外,该网站还提供类似社交网络的功能,例如提要、关注者、wiki(使用名为 Gollum 的 wiki 软件)和社交网络图,以显示开发人员如何处理存储库的版本(“分支”)以及哪个分支(以及该分支内的分支)是最新的。

任何人都可以浏览和下载公共存储库,但只有注册用户才能向存储库贡献内容。使用注册用户帐户,用户可以进行讨论、管理存储库、向他人的存储库提交贡献以及查看代码更改。GitHub 于 2019 年 1 月开始免费提供有限的私人存储库(每个项目最多 3 名贡献者)。以前,只有公共存储库是免费的。2020 年 4 月 14 日,GitHub 向所有人免费提供“所有核心 GitHub 功能”,包括“拥有无限协作者的私人存储库”。

支撑 GitHub 的基本软件是 Git 本身,由 Linux 的创建者 Linus Torvalds 编写。提供 GitHub 用户界面的附加软件由 GitHub, Inc. 开发人员 Wanstrath、Hyett 和 Preston-Werner 使用 Ruby on Rails 和 Erlang 编写。

Scope 范围

GitHub 的主要目的是促进软件开发的版本控制和问题跟踪方面。标签、里程碑、责任分配和搜索引擎可用于问题跟踪。对于版本控制,Git(以及 GitHub)允许拉取请求来提议对源代码进行更改。可以查看提议更改的用户可以看到请求的更改之间的差异并批准它们。在 Git 术语中,此操作称为“提交”,它的一个实例是“提交”。所有提交的历史记录都会保留,以后可以查看。

此外,GitHub 支持以下格式和功能:

  • 文档,包括自动呈现的各种 Markdown 类文件格式的 README 文件(请参阅 README § 在 GitHub 上)
  • Wikis,一些存储库仅由 wiki 内容组成。其中包括精选的推荐软件列表,这些列表被称为 awesome 列表。
  • GitHub Actions,允许构建持续集成和持续部署管道,用于测试、发布和部署软件,而无需使用第三方网站/平台
  • GitHub Codespaces,一个在线 IDE,为用户提供虚拟机,旨在作为构建和测试代码的工作环境。
  • 图表:脉搏、贡献者、提交、代码频率、打卡、网络、成员
  • 集成目录
  • 电子邮件通知
  • 讨论
  • 通过 @ 提及某人来订阅通知的选项。
  • 表情符号
  • 文件中嵌套的任务列表
  • 地理空间数据可视化
  • 可以使用集成的 STL 文件查看器预览 3D 渲染文件,该查看器在“3D 画布”上显示文件。查看器由 WebGL 和 Three.js 提供支持。
  • 支持预览许多常见的图像格式,包括 Photoshop 的 PSD 文件
  • PDF 文档查看器
  • 不同软件包中已知的常见漏洞和暴露的安全警报

GitHub 的服务条款不要求托管在 GitHub 上的公共软件项目符合开源定义。服务条款规定,“通过将您的存储库设置为公开查看,您同意允许其他人查看和分叉您的存储库。”

GitHub Enterprise

GitHub Enterprise 是具有类似功能的 GitHub 的自管理版本。它可以在组织的硬件或云提供商上运行,自 2011 年 11 月起已可用。2020 年 11 月,GitHub Enterprise Server 的源代码在网上泄露,显然是为了抗议 DMCA 删除 youtube-dl。据 GitHub 称,源代码来自 GitHub 自己意外与企业客户共享代码,而不是对 GitHub 服务器的攻击。

GitHub Pages

2008 年,GitHub 推出了 GitHub Pages,这是一项用于博客、项目文档和书籍的静态网​​络托管服务。所有 GitHub Pages 内容都以文件形式存储在 Git 存储库中,以逐字或 Markdown 格式提供给访问者。GitHub 与 Jekyll 静态网站和博客生成器以及 GitHub 持续集成管道集成。每次更新内容源时,Jekyll 都会重新生成网站并通过 GitHub Pages 基础设施自动提供服务。

与 GitHub 的其他部分一样,它包括免费和付费服务层。通过此服务生成的网站可以作为 github.io 域的子域托管,也可以连接到通过第三方域名注册商购买的自定义域。GitHub Pages 支持 HTTPS 加密。

Gist

GitHub 还运营一个名为 Gist 的 pastebin 风格网站,用于代码片段,而不是通常用于较大项目的 GitHub 本身。 Tom Preston-Werner 在 2008 年的一次 Ruby 会议上首次推出了该功能。

Gist 以传统的简单 pastebin 概念为基础,增加了代码片段的版本控制、轻松分叉和私人粘贴的 TLS 加密。由于每个“gist”都是自己的 Git 存储库,因此多个代码片段可以包含在一个页面中,并且可以使用 Git 进行推送和拉取。

未注册用户可以上传 Gist,直到 2018 年 3 月 19 日,当时只有登录用户才能上传 Gist,据说是为了减轻最近 Gist 页面上的垃圾邮件。

Gists 的 URL 使用十六进制 ID,对 Gists 的编辑记录在修订历史记录中,该历史记录可以显示每页 30 个修订的文本差异,并提供“拆分”和“统一”视图之间的选项。与存储库一样,Gists 可以分叉、加星标(即公开收藏)和评论。修订、星标和分支的数量在要点页面上显示。

教育计划

GitHub 推出了一项名为 GitHub 学生开发者包的新计划,让学生可以免费使用十几种流行的开发工具和服务。GitHub 与 Bitnami、Crowdflower、DigitalOcean、DNSimple、HackHands、Namecheap、Orchestrate、Screenhero、SendGrid、Stripe、Travis CI 和 Unreal Engine 合作推出了该计划。

2016 年,GitHub 宣布推出 GitHub 校园专家计划,以培训和鼓励学生在大学发展技术社区。校园专家计划面向全球 18 岁及以上的大学生开放 GitHub 校园专家是 GitHub 资助面向学生的活动和社区的主要方式之一,校园专家可以获得培训、资金和额外资源来举办活动和发展他们的社区。要成为校园专家,申请人必须完成一个包含多个模块的在线培训课程,以培养社区领导技能。

GitHub Marketplace 服务

GitHub 还提供了一些软件即服务 (SaaS) 集成,用于为项目添加额外功能。这些服务包括:

  • Waffle.io:面向软件团队的项目管理,允许用户自动查看拉取请求、自动构建、审查和跨存储库部署。
  • Rollbar:提供实时调试工具和全栈异常报告。
  • Codebeat:面向 Web 和移动开发人员的自动代码分析。
  • Travis CI:持续集成服务。
  • GitLocalize:提供实用程序来管理项目翻译和国际化。

GitHub Sponsors 赞助商

GitHub 赞助商允许用户每月向托管在 GitHub 上的项目捐款。公开测试版于 2019 年 5 月 23 日发布,该项目接受候补名单注册。 The Verge 称 GitHub Sponsors“与 Patreon 完全一样”,因为“开发者可以提供各种带有不同福利的资助等级,并且他们会从希望访问并鼓励他们工作的支持者那里获得定期付款”,只是“使用该计划无需支付任何费用”。此外,GitHub 在第一年为早期采用者提供奖励:它承诺承担付款处理成本并为每位开发者提供最高 5,000 美元的赞助金。此外,用户仍然可以使用 Patreon 和 Open Collective 等类似服务并链接到他们的网站。

Mascot 吉祥物

GitHub 的吉祥物是一只拟人化的“章鱼猫”,有五只章鱼般的手臂。这个角色是由平面设计师 Simon Oxley 创作的剪贴画,在 iStock 上出售,这是一个让设计师能够销售免版税数字图像的网站。GitHub 选择的插图是 Oxley 命名为 Octopuss 的角色。由于 GitHub 希望将 Octopuss 作为其徽标(iStock 许可证不允许使用),他们与 Oxley 协商购买该图像的独家使用权。

GitHub 将 Octopuss 更名为 Octocat,并将该角色与新名称一起注册为商标。后来,GitHub 聘请插画师 Cameron McEfee 将 Octocat 改编为网站和宣传材料上的不同用途;此后,McEfee 和各种 GitHub 用户已经创建了数百种该角色的变体,这些变体可在 Octodex 上找到。

该公司总部位于加利福尼亚州,自 2018 年以来一直是微软的子公司。

Share this post