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
- 母公司：微軟
- 現狀：在線