GitHub是一個線上軟體原始碼代管服務平台,用於公開程式或軟體的代碼。使用Git作為版本控制軟體,由開發者克里斯·汪斯崔斯、P·J·海特和湯姆·普雷斯頓·沃納使用Ruby on Rails編寫而成。在2018年,GitHub被微軟公司收購。[2][3][4]
Quick Facts 公司類型, 網站類型 ...
GitHub |
公司類型 | 子公司 |
---|
網站類型 | 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) (英語).