GitHub是一個線上軟件原始碼寄存服務平台,用於公開程式或軟件的代碼。使用Git作為版本控制軟件,由開發者克里斯·汪斯崔斯英語Chris WanstrathP·J·海特英語P. J. Hyett湯姆·普雷斯頓·沃納使用Ruby on Rails編寫而成。在2018年,GitHub被微軟公司收購。[2][3][4]

Quick Facts 公司類型, 網站類型 ...
GitHub
Thumb
公司類型子公司
網站類型
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

GitHub平台於2007年10月1日開始開發[10][11]。網站於2008年2月以beta版本開始上線,4月份正式上線。[12] GitHub裏面的專案可以透過標準的Git命令進行訪問和操作。同時,所有的Git命令都可以用到GitHub專案上面。GitHub開發了針對Microsoft WindowsmacOS作業系統的桌面客戶端。此外,也可以使用第三方外掛程式來實現Git功能。

網站提供了一系列社交網絡具有的功能,例如標星/讚好(star)、跟隨(follow)、評論。用戶可以透過複刻(fork)他人專案的形式參與開發,並可透過協同運作示意圖英語Collaboration graph來檢視有多少開發者參與了開發並追蹤最新的複刻版本。此外網站還有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 RailsErlang作為後端。[15]

主要功能

GitHub通常用於軟件開發。GitHub還支援以下格式和功能:

  • 文件:包括自動生成的、採用類Markdown語言的Readme檔案(稱作GitHub Flavored Markdown, GFM)。
  • 問題追蹤系統(同時可用於功能需求)
  • Wiki
  • GitHub Pages支援用戶透過軟件倉庫建立靜態網站或靜態網誌(透過一個名為Jekyll的軟件實現,但是也支援採用諸如 Hexo 等其他網誌引擎搭建)。
  • 任務列表
  • 甘特圖
  • 視覺化的地理位置分析
  • 預覽3D彩現檔案[16]。預覽功能透過WebGLThree.js實現。
  • 預覽Adobe Photoshop的PSD檔案,甚至可以比較同一檔案的不同版本。

倉庫許可證

GitHub的許可條款並不要求公有倉庫滿足自由軟件標準。在建立軟件倉庫時,GitHub會詢問用戶準備採取的軟件許可證,此外用戶也可以使用自己的許可證。

GitHub Enterprise

GitHub Enterprise和GitHub的服務類似,不過它為大型企業的開發團隊量身客製化,並可提供自寄存版本伺服器軟件。[17]

GitHub Pages

GitHub Pages是GitHub提供的一個網頁寄存服務,可以用於存放靜態網頁,包括網誌、專案文件甚至整本書[18]。一般GitHub Pages的網站使用github.io的子域名,但是用戶也可以使用第三方域名。Github Pages以開源倉庫公開靜態網頁原始碼,可在倉庫->設置->Code and automation里設置, https://github.com/頁面存檔備份,存於互聯網檔案館)<用戶名>/<倉庫名>/settings/pages。

Gist

GitHub提供一個貼上箱英語Pastebin風格的站點GitHub Gist。

Tom Preston-Werner於2008年開發了Gist功能[19]。Gist繼承了貼上箱英語Pastebin的觀念,此外還添加了版本控制、復刻、SSL加密等功能。因為代碼片段也是Git倉庫,所以單個代碼片段可以容納多個檔案,並且可以透過Git進行操作。因此Gist更像一個小型專案。

2014年11月2日,Gist在中國大陸被防火長城封鎖,無法正常訪問。[20]

Student Developer Pack

GitHub與Algolia、Microsoft AzureBitnamiCrowdflower英語CrowdFlowerDigitalOceanDNSimple英語DNSimple、GitKraken、Heroku、HackHands、JetBrains、NamecheapName.com英語Name.com、Orchestrate、Screenhero、SendGrid英語SendGridStripeTravis CI虛幻引擎等共同合作,於2014年10月7日發起了一個名為GitHub學生開發者套裝的專案。該專案為學生提供了一些免費的開發工具和服務。[21][22]

使用GitHub的專案

許多知名程式庫、開發架構都採用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在收到政府對某一倉庫的管制請求時,會將公文公開在官方倉庫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的域名進行「間歇性」的封鎖。

GitHub限制用戶與專案

  • 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]

參考資料

參考文獻

外部連結

參見

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.