有此一說:身為軟體開發工程師,你可以沒有Facebook,但不能沒有GitHub。如果Git給予軟體開發工程師版本控制的能力,那麼GitHub則帶領你遨遊開源世界的美麗。
Git與GitHub為現代化程式開發最重要的軟體與管理服務,前者為分散式版本控制的軟體,後者則是以Git 作為版本控制之原始碼代管服務平台。
GitHub不僅僅只有儲存庫(Repository)功能,它提供許多現代化軟體開發所需的服務與工作流程,使用者與團隊可以透過GitHub平台上進行建置、交付與維護工作。GitHub是全世界最大的技術社群,您能與志同道合的人們建立聯繫並進行交流,從中取得最新的知識與累積經驗。您也能參與開放原始碼專案,盡一己之力提交貢獻,進而解決全世界人們的問題。
GitHub為什麼對於現代開發者如此重要?主要在於GitHub所提供的功能與工作流程具有許多現代開發者必須具備的軟體開發概念,如:版本管理機制、自動化工作、持續整合、部署策略、軟體漏洞回報流程、安全測試左移⋯等。精通GitHub功能的開發人員其生產力與程式碼品質也優於多數的傳統開發人員。
GitHub允許所有人檢視公開Repository與下載其原始程式碼,但僅有已註冊的使用者才能參與討論與提交貢獻。GitHub提供社群互動功能讓使用者對於有興趣的Repository 以追蹤 (Watch)、喜愛 (Star) 與討論 (Comment) 的方式進交流。您可以使用復刻 (Fork Repository) 功能,在不影響既有專案情況下參與開發工作,成為專案貢獻者之一。
全世界最大的原始碼管理平台與開放原始碼社群
GitHub 是世界上最大的程式碼管理平台。數以百萬的開發人員與組織透過此平台建立、交付與維護他們的軟體。您能在GitHub ⋯
- 檢視公開軟體套件內程式碼,理解邏輯並正確使用
- 參與開放原始碼專案,為全世界軟體技術盡一份力
- 其他開發者建立聯繫並進行互動,提升自身技術能力
- 搜尋方便的套件與相關資源加速軟體開發
- 大量閱讀程式碼提升自身技術能力
開放原始碼是推動世界軟體技術的基石,透過各地開發人員參與討論、提出建議與提交貢獻,加速其發展以提升大眾福祉。也因為任何人皆可檢視,其透明度也可接受大眾公評。GitHub可以稱為近年來開源專案的搖籃,幾乎所有的開放原始碼項目皆使用GitHub 進行管理,也因此大量開放原始碼專案在此孕育。其平台特性符合開放原始碼專案需求,讓與會者可以更容易的為開放原始碼提交貢獻。
也因為為全世界最大的開放原始碼社群,GitHub 更專注於開放原始碼專案安全。對於Public Repository 提供免費程式碼掃描與秘密掃描服務,並引導Repository 擁有者建立漏洞回報機制、安全版本支援公告,並於資安漏洞未公開前提供專屬的Private Repository,讓相關人員盡早進行修復作業。有別於市面上其他DevOps 服務,GitHub 可以說是最注重軟體資訊安全與主動進行安全測試左移的服務平台。*
GitHub如何實現現代化應用程式開發
GitHub不僅僅是一個程式碼代管平台,它提供開發團隊輕量級開發流程:GitHub Flow,讓開發人員可以提交變更內容與對進行嚴謹審核,並在合併前進行部署與測試,確保每一次變更皆不影響品質。除此之外,任何人皆可以透過復刻 (Fork) 與拉取請求 (Pull Request) 機制,對Public Repository新功能或既有問題提交程式碼,盡一己之力貢獻於開放原始碼專案,進而幫助全世界的人們解決問題,促進軟體技術的發展。
圖2 GitHub Flow 包含建立分支、提交變更、拉取請求、程式碼審核、合併前部署與合併六個階段
GitHub 相關服務與費用
GitHub 有三種使用方案,分別為Free、Team 與Enterprise。無論您選擇哪一種方案,皆可以享有無限數量Public/Private Repository、免費持續整合與持續部署使用時數與免費的Package Storage 容量。在專案初始階段,開發團隊可以選擇Free 使用方案。無論是進行Proof of Concept 或開發Minimum Viable Product,透過免費的使用時數與儲存容量,讓產品在開發初期能迅速茁壯並進行驗證。建立Repository 不需要經過繁複安裝或設定流程,讓開發人員更可以專注於開發工作,而無須花費心力在基礎設施維護上。當產品發展至一定的規模,您可以進一步選擇Team與Enterprise方案,取得更方便且更安全的功能,以滿足業務與開發團隊的需求。
若開發團隊相當注重資訊安全與程式碼品質,Team 方案是不錯的選擇。每一個月成本約 4 美金,即可享有分支保護、單一Pull Request 允許多個審閱者、靜態網頁(GitHub Page) 與文件管理 (Wiki)⋯等功能,可以大幅提升團隊協作效率與軟體交付品質。Enterprise 方案提供企業所需要功能與安全認證,包含單一登入(SAML single sing-on)、提供稽核API、進階稽核功能、管理多個組織與內部使用者⋯等,以滿足企業數位轉型之需求。
GitHub 對於開放原始碼項目相當友善, 只要您的Repository 類型為Public,將提供無使用時間限制的CI/CD、無容量限制的Package Storage、程式碼漏洞掃描與秘密掃描,讓開發團隊在發展公開項目時可以無後顧之憂。
圖3 Public Repository 可以免費使用 GitHub 進階安全功能
《動手學GitHub!現代人不能不知道的協同合作平台》/ 謝政廷 著