GitHub

GitHub是一个在线软件源代码托管服务平台，用于公开程序或软件的代码。使用Git作为版本控制软件，由开发者克里斯·汪斯崔斯、P·J·海特和汤姆·普雷斯顿·沃纳使用Ruby on Rails编写而成。在2018年，GitHub被微软公司收购。

GitHub同时提供付费账户和免费账户。这两种账户都可以建立公开或私有的代码仓库，但付费用户拥有更多功能。根据在2009年的Git用户调查，GitHub是最流行的Git托管站点。除了允许个人和组织建立和存取保管中的代码以外，它也提供了一些方便社会化共同软件开发的功能，即一般人口中的社群功能，包括允许用户追踪其他用户、组织、软件库的动态，对软件代码的改动和bug提出评论等。GitHub也提供了分析功能，用于概观显示开发者们怎样在代码库上工作以及软件的开发活跃程度。

截至2022年6月，GitHub已经有超过5700万注册用户和1.9亿代码库（包括至少2800万开源代码库），事实上已经成为了世界上最大的代码托管网站和开源社区。截至2023年1月26日，已经有超过1亿开发人员使用GitHub。

## 服务

### GitHub

GitHub平台于2007年10月1日开始开发。网站于2008年2月以beta版本开始上线，4月份正式上线。

GitHub里面的项目可以透过标准的Git命令进行访问和操作。同时，所有的Git命令都可以用到GitHub项目上面。GitHub开发了针对Microsoft Windows和macOS操作系统的桌面客户端。此外，也可以使用第三方插件来实现Git功能。

网站提供了一系列社交网络具有的功能，例如标星／赞（star）、关注（follow）、评论。用户可以透过复刻（fork）他人项目的形式参与开发，并可透过协作示意图来查看有多少开发者参与了开发并追踪最新的复刻版本。此外网站还有Wiki（透过一个名为 gollum 的软件实现）等功能。

GitHub同时允许注册用户和非注册用户在网页中浏览项目，也可以以ZIP格式打包下载。但是用户必须注册登录一个账号才能讨论、创建并编辑项目、参与他人的项目和代码审查。

GitHub支持建立不限数量的公开仓库，已付费用户可以建立私有仓库。2019年1月7日，GitHub宣布免费用户也可以建立私有仓库，私有仓库数量不限但每个仓库最多指定三个合作者。2020年4月14日，GitHub宣布进一步开放核心功能，取消私有仓库合作者数量限制，并降低了收费账号费用。

GitHub, Inc. 原本是扁平化的组织架构，没有中阶主管，而依赖于员工的自我管理能力。员工可以自由选择有兴趣的专案开发(自由分派)，但是薪水由执行长订定。

在2014年，GitHub新增了一层中阶主管来应对关于高阶主管的严重骚扰指控。针对此事件，执行长Tom Preston-Werner辞职。

#### 开发语言

GitHub系统由GitHub公司的开发者Chris Wanstrath开发。系统采用了Ruby on Rails和Erlang作为后端。

#### 主要功能

GitHub通常用于软件开发。GitHub还支持以下格式和功能：

- 文档：包括自动生成的、采用类Markdown语言的Readme文件（称作GitHub Flavored Markdown, GFM）。
- 问题追踪系统（同时可用于功能需求）
- Wiki
- GitHub Pages支持用户透过软件仓库建立静态网站或静态博客（透过一个名为Jekyll的软件实现，但是也支持采用诸如 Hexo 等其他博客引擎搭建）。
- 任务列表
- 甘特图
- 可视化的地理位置分析
- 预览3D渲染文件。预览功能通过WebGL和Three.js实现。
- 预览Adobe Photoshop的PSD文件，甚至可以比较同一文件的不同版本。

#### 仓库许可证

GitHub的许可条款并不要求公有仓库满足自由软件标准。在建立软件仓库时，GitHub会询问用户准备采取的软件许可证，此外用户也可以使用自己的许可证。

### GitHub Enterprise

GitHub Enterprise和GitHub的服务类似，不过它为大型企业的开发团队量身定制，并可提供自托管版本服务器软件。

### GitHub Pages

GitHub Pages是GitHub提供的一个网页寄存服务，可以用于存放静态网页，包括博客、项目文档甚至整本书。GitHub Pages的网站使用github.io的子域名，但是用户也可以使用第三方域名。Github Pages可以将仓库目录或 GitHub Actions 中传入的文件发布为静态网页源代码，一般可在仓库->设置->Pages里设置。

### Gist

GitHub提供一个粘贴箱风格的站点GitHub Gist。

Tom Preston-Werner于2008年开发了Gist功能。Gist继承了粘贴箱的观念，此外还添加了版本控制、复刻、SSL加密等功能。因为代码片段也是Git仓库，所以单个代码片段可以容纳多个文件，并且可以通过Git进行操作。因此Gist更像一个小型项目。

2014年11月2日，Gist在中国大陆被防火长城屏蔽，无法正常访问。

### Student Developer Pack

GitHub与Algolia、Microsoft Azure、Bitnami、Crowdflower、DigitalOcean、DNSimple、GitKraken、Heroku、HackHands、JetBrains、Namecheap、Name.com、Orchestrate、Screenhero、SendGrid、Stripe、Travis CI和虚幻引擎等共同合作，于2014年10月7日发起了一个名为GitHub学生开发者套装的项目。该项目为学生提供了一些免费的开发工具和服务。

### GitHub Copilot

GitHub Copilot 是微软公司在 GitHub 推出的AI服务，为代码编写、审查提供帮助。Copilot 最早被设计为在集成开发环境和源代码编辑器中按照的插件，现也可以在GitHub网页和终端使用。它的VS Code扩展是开源的。

## 使用GitHub的项目

许多知名程式库、开发框架都采用GitHub作为为主版本控制平台，其中包括：

- Avogadro
- Blueprint CSS框架
- Bootstrap
- Capistrano (软件)
- CyanogenMod
- Cicada language
- Clojure
- Erlang
- GNU Smalltalk
- Haml
- jQuery
- JUnit
- Lift
- Linux Mint
- Mono
- Penumbra: Overture
- Perl
- PHP
- phpBB
- Prey Project
- Prototype JavaScript框架
- Python
- Ruby
- Ruby on Rails
- Rust
- Sinatra
- Symfony
- Kodi
- 雅虎UI库
- Yaws
- youtube-dl

## 统计

GitHub于2008年2月运行。

在2009年2月24日通过雅虎进行的一次采访中，GitHub队伍成员们宣布在GitHub运行的第一年，有共计46,000个公共版本库，它们中有17,000个是于最近一个月内创建的。当时，大概有6,200个版本库被派生（fork）至少一次，有4,600被合并。在另一个在2009年6月27日通过雅虎的采访中，Tom Preston-Werner宣布版本库数量已经提升到了90,000唯一性公共版本库，有12,000个版本库被派生（fork）至少一次，总共有135,000个版本库。

在2010年6月，GitHub宣布它现在已经可提供1百万项目，它们中的60%是完整的版本库，但仍然有40%是“gist”或代码片段。2011年4月，GitHub宣称存放的代码库数量已达到2百万个。2013年4月，GitHub用户数达到350万，代码库数量达到6百万个。

## 融资

- 2012年，GitHub从Andreessen Horowitz筹集了1亿美元的资金，估值为7.5亿美元。
- 2015年7月29日，GitHub表示已在红杉资本（Sequoia Capital）领投的一轮融资中筹集了2.5亿美元。那一轮的其他投资者包括Andreessen Horowitz，Thrive Capital和IVP（机构风险合伙人）。该轮融资对公司的估值约为20亿美元。
- 2018年6月4日，微软宣布有意以75亿美元的价格收购GitHub。该交易于2018年10月26日完成。GitHub继续作为社区，平台和业务独立运作。在Microsoft的领导下，该服务由Xamarin的Nat Friedman领导，并向Microsoft Cloud和AI执行副总裁Scott Guthrie汇报。GitHub的首席执行官Chris Wanstrath被保留为“技术研究员”，并向Guthrie汇报。

## 事件

### 对GitHub的封锁

GitHub曾在中国、俄罗斯和印度等国被审查和封锁，虽然此网站是单纯的技术社群一般较少具政治敏感讯息的议题，但相关代码可用于开发突破网络审查等线上隐蔽软件或者中间件；同时因其具有较方便的协作功能特性，因此有部分用于非代码的政治诉求或敏感内容，因此相关政府要求对于该种信息进行管制。GitHub在收到政府对某一仓库的管制请求时，会将公文公开在官方仓库 github/gov-takedowns。

- 2013年1月20日，中国大陆政府的防火长城利用域名污染和关键词过滤等手段封锁GitHub。23日，GitHub被解封，事件平息。
- 2013年1月26日，有中国大陆的用户在访问GitHub时发现证书无效，经检查发现，GitHub的证书变为了一自签署的X.509证书，生成时间为2013年1月25日14时29分12秒，有效期一年，故有人推测GitHub疑似遭到了中间人攻击。攻击持续了约一个小时后停止，访问恢复正常。
- 2014年12月3日，GitHub因用户发布自杀教学内容而被俄罗斯封锁。
- 2014年12月31日，GitHub等32个网站因用户发布的伊斯兰国相关内容而被印度封锁。2015年1月10日，GitHub被解封，但2015年9月12日GitHub在整个印度又被封锁。
- 2015年3月26日，GitHub遭受了GitHub历史上最严重的阻断服务攻击。GitHub坚信攻击者的目的在于迫使GitHub删除特定类型的内容。截止29日，攻击者共使用了四种DDoS攻击技术。攻击于31日停止。外界有人传闻这是中国政府所为，但中国政府予以否认。该攻击工具也被称为“大炮”。
- 2015年8月，中国政府进一步收紧对互联网的控制。22日翻墙软件Shadowsocks作者迫于警方压力删除项目。25日，翻墙软件GoAgent作者自行删除自己的代码。同一天GitHub再次遭到来自中国大陆的DDoS攻击。部分开发者认为此次攻击与中国政府有关。
- 2016年2月29日，编程随想的博客在Github上发布了《赵家人》专案，整理出据称为中国大陆权贵阶层包括130多个家族、700多人的资料和关系网络。其中在6月8日，中国网络空间安全协会致信GitHub，称该项目下的 一个issue诽谤中华人民共和国最高领导人习近平有谋杀嫌疑，要求立刻删除。这个题为“习近平有重大杀人嫌疑！”的issue列举了16条指控习近平犯下谋杀罪行的理由，在2020年2月已有2000个以上的评论，至今仍然保持开放。该issue的作者用户名为CMB-news，可疑的是其于Github上的 个人主页显示该用户仅在2016年做出了数个不含任何代码的编辑，此后便无活动，亦未见其与项目zhao的正式关联。3天后GitHub公开了 这封信。这是GitHub收到的第一个来自代表中国大陆官方的请求。
- 2020年3月26日，中国大陆多地用户访问GitHub Pages时发现遭遇中间人攻击，证书变为一张通过私人QQ邮箱自签名的证书，生成时间为2019年9月26日。部分地区遭受攻击数小时后停止，但也有部分地区持续遭受攻击1-2天且证书变为了另一张使用MyMail自签名的证书。DNSMon系统的证书信息显示同一时间京东等网站也遭到了相同攻击，尚无证据证明此次事件与审查有关。
- 2021年2月末至今，中国大陆开始对 `*.github.com`，以及`raw.githubusercontent.com`的域名进行“间歇性”的屏蔽。
- 2025年，澳大利亚计划将GitHub列为“危害未成年人的社交媒体平台”并要求GitHub落实网络实名制。

### GitHub限制用户与专案

- 2019年5月，GitHub更新了用户协议，表明GitHub的产品和服务适用于美国出口管制法律。
- 2019年7月起，GitHub基于美国出口管理条例，开始对伊朗、叙利亚和克里米亚的私人repo和付费账户实施限制，2020年4月起一个名为Aurelia的软件代码被GitHub封锁引起较大纷争，其理由为参与的两个志愿者为伊朗人，引起该程式诸多志愿者不满并于硅谷的“ 黑客新闻 ”论坛大举批判，后续GitHub改变作法重新启动Aurelia页面但封锁两个伊朗人账号，之前并发生过一名为Hamed Saeed的开发者已经移民芬兰多年但祖籍为伊朗而被封锁的事件。此事件引发一个后续讨论，美国订定的制裁他国法案仅限于不让特定外国人使用美国技术，然而GitHub上的技术是各国志愿者撰写并无偿分享，并非美国购买有版权的所有物，其中也包含伊朗程式员也就是其实有伊朗的技术，美国无权拿不属于自己的东西制裁别人甚至“拿伊朗的技术制裁伊朗”。GitHub最后在争议下觉得有所理亏而改变作法，被封禁的用户可以下载回自己的作品，但依然不能在社区里查看代码。
- 2020年10月23日，美国唱片业协会（RIAA）根据《数字千年著作权法案》（DMCA）向GitHub发布了删除通知，其中要求删除youtube-dl及其分支。GitHub接受了请求，移除了该项目。2020年11月16日，电子前哨基金会正式向GitHub发送了一份质疑移除请求的信，澄清了该软件并没有规避任何著作权保护措施。随后GitHub恢复了该存储库。GitHub还在官方博客中宣布，未来将由技术和法律专家组成的团队逐项审查所有涉及《数字千年著作权法案》第1201节的移除请求。

### 著作权争议

2022年6月，软件自由保护组织呼吁开发者“放弃GitHub”，原因是他们相信GitHub Copilot的训练过程涉及著作权争议。

## 趣闻

因GitHub开源社群性别严重失衡，男性群体高达95%以上，故GitHub常被网友们戏称为“GayHub”、“全球最大同性交友网站”。

## 基本资料

- 公司类型：子公司
- 创办人：汤姆·普雷斯顿·沃纳、克里斯·汪斯崔斯、P·J·海特
- 首席执行官：Thomas Dohmke
- 代表人物：Erica Brescia (COO)、Carrie Olesen (CHRO)、Mike Taylor (CFO)
- 商业性质：是
- 类型：Git版本库托管
- 编程语言：Ruby
- 用户：1亿（2023年1月）
- 语言：英文
- 注册：可选（建立和参与项目时需要）
- 所有者：微软
- 成立：2008年
- 总部：加利福尼亚州旧金山
- 坐标：美国
- 业务范围：全球
- 产业：软件、代码库、社群
- 员工人数：1,079
- 母公司：微软
- 现状：在线