GitHub是一個在線軟件源代碼託管服務平台,用於公開程序或軟件的代碼。使用Git作為版本控制軟件,由開發者克里斯·汪斯崔斯、P·J·海特和湯姆·普雷斯頓·沃納使用Ruby on Rails編寫而成。在2018年,GitHub被微軟公司收購。[2][3][4]
Quick Facts 公司類型, 網站類型 ...
GitHub ![Thumb](//upload.wikimedia.org/wikipedia/commons/thumb/2/29/GitHub_logo_2013.svg/128px-GitHub_logo_2013.svg.png) |
公司類型 | 子公司 |
---|
網站類型 | Git版本庫託管 |
---|
語言 | 英文 |
---|
成立 | 2008年2月,16年前(2008-02) |
---|
總部 | |
---|
業務範圍 | 全球 |
---|
持有者 | 微軟 |
---|
創立者 | |
---|
首席執行官 | Thomas Dohmke |
---|
代表人物 |
- Erica Brescia (COO)
- Carrie Olesen (CHRO)
- Mike Taylor (CFO)
|
---|
產業 | 軟件 代碼庫 社群 |
---|
員工 | 1,079[1] |
---|
母公司 | 微軟 |
---|
網址 | github.com |
---|
商業性質 | 是 |
---|
註冊 | 可選(建立和參與項目時需要) |
---|
用戶 | 1億(2023年1月) |
---|
現狀 | 在線 |
---|
編程語言 | Ruby |
---|
Close
GitHub同時提供付費賬戶和免費賬戶。這兩種賬戶都可以建立公開或私有的代碼倉庫,但付費用戶擁有更多功能。根據在2009年的Git用戶調查,GitHub是最流行的Git存取站點[5]。除了允許個人和組織建立和存取保管中的代碼以外,它也提供了一些方便社會化共同軟件開發的功能,即一般人口中的社群功能,包括允許用戶追蹤其他用戶、組織、軟件庫的動態,對軟件代碼的改動和bug提出評論等。GitHub也提供了圖表功能,用於概觀顯示開發者們怎樣在代碼庫上工作以及軟件的開發活躍程度。
截至2022年6月,GitHub已經有超過5700萬註冊用戶[6]和1.9億代碼庫(包括至少2800萬開源代碼庫)[7],事實上已經成為了世界上最大的代碼託管網站和開源社區[8]。截至2023年1月26日,已經有超過1億開發人員使用GitHub。[9]
GitHub平台於2007年10月1日開始開發[10][11]。網站於2008年2月以beta版本開始上線,4月份正式上線。[12]
GitHub裡面的項目可以透過標準的Git命令進行訪問和操作。同時,所有的Git命令都可以用到GitHub項目上面。GitHub開發了針對Microsoft Windows和macOS操作系統的桌面客戶端。此外,也可以使用第三方插件來實現Git功能。
網站提供了一系列社交網絡具有的功能,例如標星/讚(star)、關注(follow)、評論。用戶可以透過複刻(fork)他人項目的形式參與開發,並可透過協作示意圖來查看有多少開發者參與了開發並追蹤最新的複刻版本。此外網站還有Wiki(透過一個名為 gollum 的軟件實現)等功能。
GitHub同時允許註冊用戶和非註冊用戶在網頁中瀏覽項目,也可以以ZIP格式打包下載。但是用戶必須註冊登錄一個賬號才能討論、創建並編輯項目、參與他人的項目和代碼審查。
GitHub支持建立不限數量的公開倉庫,已付費用戶可以建立私有倉庫。2019年1月7日,GitHub宣布免費用戶也可以建立私有倉庫,私有倉庫數量不限但每個倉庫最多指定三個合作者[13]。2020年4月14日,GitHub宣布進一步開放核心功能,取消私有倉庫合作者數量限制,並降低了收費賬號費用[14]。
GitHub, Inc. 原本是扁平化的組織架構,沒有中階主管,而依賴於員工的自我管理能力。員工可以自由選擇有興趣的專案開發(自由分派),但是薪水由執行長訂定。
在2014年,GitHub新增了一層中階主管來應對關於高階主管的嚴重騷擾指控。針對此事件,執行長Tom Preston-Werner辭職。
GitHub系統由GitHub公司的開發者Chris Wanstrath開發。系統採用了Ruby on Rails和Erlang作為後端。[15]
GitHub通常用於軟件開發。GitHub還支持以下格式和功能:
GitHub的許可條款並不要求公有倉庫滿足自由軟件標準。在建立軟件倉庫時,GitHub會詢問用戶準備採取的軟件許可證,此外用戶也可以使用自己的許可證。
GitHub Enterprise和GitHub的服務類似,不過它為大型企業的開發團隊量身定製,並可提供自託管版本服務器軟件。[17]
GitHub Pages是GitHub提供的一個網頁寄存服務,可以用於存放靜態網頁,包括博客、項目文檔甚至整本書[18]。一般GitHub Pages的網站使用github.io的子域名,但是用戶也可以使用第三方域名。Github Pages以開源倉庫公開靜態網頁源代碼,可在倉庫->設置->Code and automation里設置, https://github.com/ (頁面存檔備份,存於網際網路檔案館)<用戶名>/<倉庫名>/settings/pages。
GitHub提供一個粘貼箱風格的站點GitHub Gist。
Tom Preston-Werner於2008年開發了Gist功能[19]。Gist繼承了粘貼箱的觀念,此外還添加了版本控制、復刻、SSL加密等功能。因為代碼片段也是Git倉庫,所以單個代碼片段可以容納多個文件,並且可以通過Git進行操作。因此Gist更像一個小型項目。
2014年11月2日,Gist在中國大陸被防火長城屏蔽,無法正常訪問。[20]
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學生開發者套裝的項目。該項目為學生提供了一些免費的開發工具和服務。[21][22]
許多知名程式庫、開發框架都採用GitHub作為為主版本控制平台,其中包括:
GitHub於2008年2月運行。[41]
在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個版本庫。[42]
在2010年6月,GitHub宣布它現在已經可提供1百萬項目,它們中的60%是完整的版本庫,但仍然有40%是「gist」或代碼片段。2011年4月,GitHub宣稱存放的代碼庫數量已達到2百萬個[43]。2013年4月,GitHub用戶數達到350萬,代碼庫數量達到6百萬個。[44]
- 2012年,GitHub從Andreessen Horowitz籌集了1億美元的資金,估值為7.5億美元[45]。
- 2015年7月29日,GitHub表示已在紅杉資本(Sequoia Capital)領投的一輪融資中籌集了2.5億美元。 那一輪的其他投資者包括Andreessen Horowitz,Thrive Capital和IVP(機構風險合伙人)。該輪融資對公司的估值約為20億美元。[45]
- 2018年6月4日,微軟宣布有意以75億美元的價格收購GitHub。 該交易於2018年10月26日完成。GitHub繼續作為社區,平台和業務獨立運作。在Microsoft的領導下,該服務由Xamarin的Nat Friedman領導,並向Microsoft Cloud和AI執行副總裁Scott Guthrie匯報。 GitHub的首席執行官Chris Wanstrath被保留為「技術研究員」,並向Guthrie匯報。[45]
GitHub曾在中國、俄羅斯和印度等國被審查和封鎖,雖然此網站是單純的技術社群一般較少具政治敏感訊息的議題,但相關代碼可用於開發突破網絡審查等線上隱蔽軟體或者中間件;同時因其具有較方便的協作功能特性,因此有部分用於非代碼的政治訴求或敏感內容,因此相關政府要求對於該種信息進行管制。GitHub在收到政府對某一倉庫的管制請求時,會將公文公開在官方倉庫github/gov-takedowns(頁面存檔備份,存於網際網路檔案館)。[46]
- 2013年1月20日,中國大陸政府的防火長城利用域名污染和關鍵詞過濾等手段封鎖GitHub[47][48]。23日,GitHub被解封,事件平息。
- 2013年1月26日,有中國大陸的用戶在訪問GitHub時發現證書無效,經檢查發現,GitHub的證書變為了一自簽署的X.509證書,生成時間為2013年1月25日14時29分12秒,有效期一年,故有人推測GitHub疑似遭到了中間人攻擊。攻擊持續了約一個小時後停止,訪問恢復正常。[49][50]
- 2014年12月3日,GitHub因用戶發布自殺教學內容而被俄羅斯封鎖。[51]
- 2014年12月31日,GitHub等32個網站因用戶發布的伊斯蘭國相關內容而被印度封鎖[52]。2015年1月10日,GitHub被解封,但2015年9月12日GitHub在整個印度又被封鎖。
- 2015年3月26日,GitHub遭受了GitHub歷史上最嚴重的阻斷服務攻擊[53]。GitHub堅信攻擊者的目的在於迫使GitHub刪除特定類型的內容。[53]截止29日,攻擊者共使用了四種DDoS攻擊技術[54]。攻擊於31日停止。外界有人傳聞這是中國政府所為,但中國政府予以否認[55][56]。該攻擊工具也被稱為「大炮」。
- 2015年8月,中國政府進一步收緊對網際網路的控制。22日翻牆軟體Shadowsocks作者迫於警方壓力刪除項目。25日,翻牆軟體GoAgent作者自行刪除自己的代碼。同一天GitHub再次遭到來自中國大陸的DDoS攻擊[57][58]。部分開發者認為此次攻擊與中國政府有關。[59]
- 2016年2月29日,編程隨想的博客在Github上發佈了《趙家人》專案,整理出據稱為中國大陸權貴階層包括130多個家族、700多人的資料和關係網絡。其中在6月8日,中國網絡空間安全協會致信GitHub,稱該項目下的一個issue(頁面存檔備份,存於網際網路檔案館)誹謗中華人民共和國最高領導人習近平有謀殺嫌疑,要求立刻刪除。這個題為「習近平有重大殺人嫌疑!」的issue列舉了16條指控習近平犯下謀殺罪行的理由,在2020年2月已有2000個以上的評論,至今仍然保持開放。該issue的作者用戶名為CMB-news,可疑的是其於Github上的個人主頁(頁面存檔備份,存於網際網路檔案館)顯示該用戶僅在2016年做出了數個不含任何代碼的編輯,此後便無活動,亦未見其與項目zhao的正式關聯。3天後GitHub公開了這封信(頁面存檔備份,存於網際網路檔案館)。這是GitHub收到的第一個來自代表中國大陸官方的請求[60]。
- 2020年3月26日,中國大陸多地用戶訪問GitHub Pages時發現遭遇中間人攻擊,證書變為一張通過私人QQ郵箱自簽名的證書,生成時間為2019年9月26日。部分地區遭受攻擊數小時後停止[61],但也有部分地區持續遭受攻擊1-2天且證書變為了另一張使用MyMail自簽名的證書[62]。DNSMon系統的證書信息顯示同一時間京東等網站也遭到了相同攻擊[63],尚無證據證明此次事件與審查有關。[64]
- 2021年2月末至今[65],中國大陸開始對
*.github.com
,以及raw.githubusercontent.com
的域名進行「間歇性」的屏蔽。
- 2019年5月,GitHub更新了用戶協議,表明GitHub的產品和服務適用於美國出口管制法律[66]。
- 2019年7月起,GitHub基於美國出口管理條例,開始對伊朗、敘利亞和克里米亞的私人repo和付費賬戶實施限制[67][68][69],2020年4月起一個名為Aurelia的軟體代碼被GitHub封鎖引起較大紛爭,其理由為參與的兩個志願者為伊朗人,引起該程式諸多志願者不滿並於硅谷的「 黑客新聞 」論壇大舉批判,後續GitHub改變作法重新啟動Aurelia頁面但封鎖兩個伊朗人帳號,之前並發生過一名為Hamed Saeed的開發者已經移民芬蘭多年但祖籍為伊朗而被封鎖的事件[70]。此事件引發一個後續討論,美國訂定的制裁他國法案僅限於不讓特定外國人使用美國技術,然而GitHub上的技術是各國志願者撰寫並無償分享,並非美國購買有版權的所有物[71],其中也包含伊朗程式員也就是其實有伊朗的技術,美國無權拿不屬於自己的東西制裁別人甚至「拿伊朗的技術制裁伊朗」。GitHub最後在爭議下覺得有所理虧而改變作法,被封禁的用戶可以下載回自己的作品,但依然不能在社區里查看代碼。[72][73]
- 2020年10月23日,美國唱片業協會(RIAA)根據《數字千年著作權法案》(DMCA)向GitHub發布了刪除通知,其中要求刪除youtube-dl及其分支。GitHub接受了請求,移除了該項目。2020年11月16日,電子前哨基金會正式向GitHub發送了一份質疑移除請求的信,澄清了該軟件並沒有規避任何著作權保護措施[74]。隨後GitHub恢復了該存儲庫。GitHub還在官方博客中宣布,未來將由技術和法律專家組成的團隊逐項審查所有涉及《數字千年著作權法案》第1201節的移除請求。[75]
2022年6月,軟體自由保護組織呼籲開發者「放棄GitHub」[76],原因是他們相信GitHub Copilot的訓練過程涉及著作權爭議。
因GitHub開源社群性別嚴重失衡,男性群體高達95%以上[77],故GitHub常被網友們戲稱為「GayHub」、「全球最大同性交友網站」[來源請求][78]。
User search. GitHub. [20220-06-08]. (原始內容存檔於2019-10-16) (英語). Showing 28,337,706 available users
Georgios Gousios; Bogdan Vasilescu; Alexander Serebrenik; Andy Zaidman. Lean GHTorrent: GitHub Data on Demand (PDF). The Netherlands: Delft University of Technology & †Eindhoven University of Technology: 1. [9 July 2014]. (原始內容 (PDF)存檔於2014年7月14日). During recent years, GITHUB (2008) has become the largest code host in the world.
Preston-Werner, Tom. GitHub Turns One!. GitHub. 19 October 2008 [2014-03-28]. (原始內容存檔於2014-04-21).
GitHub Pages. The GitHub Blog. 2008-12-18 [2020-03-29]. (原始內容存檔於2020-03-29) (美國英語).
Wanstrath, Chris. jQuery!. GitHub blog. 29 October 2009 [2010-08-23]. (原始內容存檔於2010-02-14).
Smart, Chris. Miscellaneous News. DistroWatch Weekly. 27 July 2009, (313) [2010-08-23]. (原始內容存檔於2010-01-13).
Mono Project. Mono Project. GitHub. [2018-06-04]. (原始內容存檔於2018-06-14).
Wanstrath, Chris. Hotkeys and Wikis. GitHub. 18 February 2008 [2010-08-23]. (原始內容存檔於2010-02-14).
Give Up GitHub. Software Freedom Conservancy. 2022-06-29 [2022-11-17]. (原始內容存檔於2022-12-28) (英語).