GitHub 是一個線上軟體原始碼託管服務平臺，用於公開程式或軟體的程式碼。使用 Git 作為版本控制軟體，由開發者、和湯姆普雷斯頓沃納使用 Ruby on Rails 編寫而成。在 2018 年，GitHub 被微軟公司收購。 GitHub 同時提供付費賬戶和免費賬戶。這兩種賬戶都可以建立公開或私有的程式碼倉庫，但付費使用者擁有更多功能。根據在 2009 年的 Git 使用者調查，GitHub 是最流行的 Git 存取站點。除了允許個人和組織建立和存取保管中的程式碼以外，它也提供了一些方便社會化共同軟體開發的功能，即一般人口中的社群功能，包括允許使用者追蹤其他使用者、組織、軟體庫的動態，對軟體程式碼的改動和 bug 提出評論等。GitHub 也提供了圖表功能，用於概觀顯示開發者們怎樣在程式碼庫上工作以及軟體的開發活躍程度。 截至 2022 年 6 月，GitHub 已經有超過 5700 萬註冊使用者和 19 億程式碼庫（包括至少 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 PrestonWerner 辭職。 開發語言 GitHub 系統由 GitHub 公司的開發者 Chris Wanstrath 開發。系統採用了 Ruby on Rails 和 Erlang 作為後端。 主要功能 GitHub 通常用於軟體開發。GitHub 還支援以下格式和功能： 文件：包括自動生成的、採用類 Markdown 語言的 Readme 檔案（稱作 GitHub Flavored Markdown GFM）。 問題追蹤系統（同時可用於功能需求） Wiki GitHub Pages 支援使用者透過軟體倉庫建立靜態網站或靜態部落格（透過一個名為 Jekyll 的軟體實現，但是也支援採用諸如 Hexo 等其他部落格引擎搭建）。 任務列表 甘特圖 視覺化的地理位置分析 預覽 3D 渲染檔案。預覽功能透過 WebGL 和 Threejs 實現。 預覽 Adobe Photoshop 的 PSD 檔案，甚至可以比較同一檔案的不同版本。 倉庫許可證 GitHub 的許可條款並不要求公有倉庫滿足自由軟體標準。在建立軟體倉庫時，GitHub 會詢問使用者準備採取的軟體許可證，此外使用者也可以使用自己的許可證。 GitHub Enterprise GitHub Enterprise 和 GitHub 的服務類似，不過它為大型企業的開發團隊量身定製，並可提供自託管版本伺服器軟體。 GitHub Pages GitHub Pages 是 GitHub 提供的一個網頁寄存服務，可以用於存放靜態網頁，包括部落格、專案文件甚至整本書。一般 GitHub Pages 的網站使用 githubio 的子域名，但是使用者也可以使用第三方域名。Github Pages 以開源倉庫公開靜態網頁原始碼，可在倉庫 設定 Code and automation 裡設定， httpsgithubcom 使用者名稱倉庫名settingspages。 Gist GitHub 提供一個風格的站點 GitHub Gist。 Tom PrestonWerner 於 2008 年開發了 Gist 功能。Gist 繼承了的觀念，此外還添加了版本控制、復刻、SSL 加密等功能。因為程式碼片段也是 Git 倉庫，所以單個程式碼片段可以容納多個檔案，並且可以透過 Git 進行操作。因此 Gist 更像一個小型專案。 2014 年 11 月 2 日，Gist 在中國大陸被防火長城遮蔽，無法正常訪問。 Student Developer Pack GitHub 與 Algolia、Microsoft Azure、Bitnami、、DigitalOcean、、GitKraken、Heroku、HackHands、JetBrains、Namecheap、、Orchestrate、Screenhero、、Stripe、Travis CI 和虛幻引擎等共同合作，於 2014 年 10 月 7 日發起了一個名為 GitHub 學生開發者套裝的專案。該專案為學生提供了一些免費的開發工具和服務。By Frederic Lardinois TechCrunch GitHub Partners With Digital Ocean Unreal Engine Others To Give Students Free Access To Developer Tools 7 October 2014 7 October 2014 使用 GitHub 的專案 許多知名程式庫、開發框架都採用 GitHub 作為為主版本控制平臺，其中包括： Avogadro Blueprint CSS 框架 Bootstrap 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 youtubedl 統計 GitHub 於 2008 年 2 月執行。 在 2009 年 2 月 24 日透過雅虎進行的一次採訪中，GitHub 隊伍成員們宣佈在 GitHub 執行的第一年，有共計 46000 個公共版本庫，它們中有 17000 個是於最近一個月內建立的。當時，大概有 6200 個版本庫被派生（fork）至少一次，有 4600 被合併。在另一個在 2009 年 6 月 27 日透過雅虎的採訪中，Tom PrestonWerner 宣佈版本庫數量已經提升到了 90000 唯一性公共版本庫，有 12000 個版本庫被派生（fork）至少一次，總共有 135000 個版本庫。 在 2010 年 6 月，GitHub 宣佈它現在已經可提供 1 百萬專案，它們中的 60 是完整的版本庫，但仍然有 40 是 gist 或程式碼片段。2011 年 4 月，GitHub 宣稱存放的程式碼庫數量已達到 2 百萬個。2013 年 4 月，GitHub 使用者數達到 350 萬，程式碼庫數量達到 6 百萬個。 融資 2012 年，GitHub 從 Andreessen Horowitz 籌集了 1 億美元的資金，估值為 75 億美元。 2015 年 7 月 29 日，GitHub 表示已在紅杉資本（Sequoia Capital）領投的一輪融資中籌集了 25 億美元。 那一輪的其他投資者包括 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 在收到政府對某一倉庫的管制請求時，會將公文公開在官方倉庫 githubgovtakedowns。 2013 年 1 月 20 日，中國大陸政府的防火長城利用域名汙染和關鍵詞過濾等手段封鎖 GitHub。23 日，GitHub 被解封，事件平息。 2013 年 1 月 26 日，有中國大陸的使用者在訪問 GitHub 時發現證書無效，經檢查發現，GitHub 的證書變為了一自簽署的 X509 證書，生成時間為 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 的作者使用者名稱為 CMBnews，可疑的是其於 Github 上的個人主頁顯示該使用者僅在 2016 年做出了數個不含任何程式碼的編輯，此後便無活動，亦未見其與專案 zhao 的正式關聯。3 天后 GitHub 公開了這封信。這是 GitHub 收到的第一個來自代表中國大陸官方的請求。 2020 年 3 月 26 日，中國大陸多地使用者訪問 GitHub Pages 時發現遭遇中間人攻擊，證書變為一張透過私人 QQ 郵箱自簽名的證書，生成時間為 2019 年 9 月 26 日。部分地區遭受攻擊數小時後停止，但也有部分地區持續遭受攻擊 12 天且證書變為了另一張使用 MyMail 自簽名的證書。DNSMon 系統的證書資訊顯示同一時間京東等網站也遭到了相同攻擊，尚無證據證明此次事件與審查有關。 2021 年 2 月末至今，中國大陸開始對 githubcom，以及 rawgithubusercontentcom 的域名進行 間歇性 的遮蔽。 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 釋出了刪除通知，其中要求刪除 youtubedl 及其分支。GitHub 接受了請求，移除了該專案。2020 年 11 月 16 日，電子前哨基金會正式向 GitHub 傳送了一份質疑移除請求的信，澄清了該軟體並沒有規避任何著作權保護措施。隨後 GitHub 恢復了該儲存庫。GitHub 還在官方部落格中宣佈，未來將由技術和法律專家組成的團隊逐項審查所有涉及《數字千年著作權法案》第 1201 節的移除請求。 著作權爭議 2022 年 6 月，軟體自由保護組織呼籲開發者「放棄 GitHub」，原因是他們相信 GitHub Copilot 的訓練過程涉及著作權爭議。 趣聞 因 GitHub 開源社群性別嚴重失衡，男性群體高達 95 以上，故 GitHub 常被網友們戲稱為。 參考資料 參考文獻 外部連結 GitHub Pages GitHub System Status Messages The GitHub Blog GitHub 客戶端使用操作 參見 自由軟體主機服務比較 SourceForge Category2008 年建立的網站 Category 專案管理軟體 Category 開放原始碼 Category 社群網站 Category 缺陷和問題跟蹤軟體 Category 版本控制系統 Category 開源軟體託管網站 Category 微軟網站 Category 美國網站