【深智書摘】Git與GitHub差在哪?動手學GitHub!

更新於 發佈於 閱讀時間約 7 分鐘

  有此一說:身為軟體開發工程師,你可以沒有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 ⋯

  1. 檢視公開軟體套件內程式碼,理解邏輯並正確使用
  2. 參與開放原始碼專案,為全世界軟體技術盡一份力
  3. 其他開發者建立聯繫並進行互動,提升自身技術能力
  4. 搜尋方便的套件與相關資源加速軟體開發
  5. 大量閱讀程式碼提升自身技術能力

  開放原始碼是推動世界軟體技術的基石,透過各地開發人員參與討論、提出建議與提交貢獻,加速其發展以提升大眾福祉。也因為任何人皆可檢視,其透明度也可接受大眾公評。GitHub可以稱為近年來開源專案的搖籃,幾乎所有的開放原始碼項目皆使用GitHub 進行管理,也因此大量開放原始碼專案在此孕育。其平台特性符合開放原始碼專案需求,讓與會者可以更容易的為開放原始碼提交貢獻。

圖1 GitHub 是世界上最大的開放原始碼社群

圖1 GitHub 是世界上最大的開放原始碼社群

  也因為為全世界最大的開放原始碼社群,GitHub 更專注於開放原始碼專案安全。對於Public Repository 提供免費程式碼掃描與秘密掃描服務,並引導Repository 擁有者建立漏洞回報機制、安全版本支援公告,並於資安漏洞未公開前提供專屬的Private Repository,讓相關人員盡早進行修復作業。有別於市面上其他DevOps 服務,GitHub 可以說是最注重軟體資訊安全與主動進行安全測試左移的服務平台。*

GitHub如何實現現代化應用程式開發

  GitHub不僅僅是一個程式碼代管平台,它提供開發團隊輕量級開發流程:GitHub Flow,讓開發人員可以提交變更內容與對進行嚴謹審核,並在合併前進行部署與測試,確保每一次變更皆不影響品質。除此之外,任何人皆可以透過復刻 (Fork) 與拉取請求 (Pull Request) 機制,對Public Repository新功能或既有問題提交程式碼,盡一己之力貢獻於開放原始碼專案,進而幫助全世界的人們解決問題,促進軟體技術的發展。

圖2 GitHub Flow 包含建立分支、提交變更、拉取請求、程式碼審核、合併前部署與合併六個階段

圖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 進階安全功能

圖3 Public Repository 可以免費使用 GitHub 進階安全功能

《動手學GitHub!現代人不能不知道的協同合作平台》/ 謝政廷 著

《動手學GitHub!現代人不能不知道的協同合作平台》/ 謝政廷 著

本文摘錄自深智數位出版之《動手學GitHub!現代人不能不知道的協同合作平台》

留言
avatar-img
留言分享你的想法!
avatar-img
深智數位的沙龍
9會員
25內容數
深智數位的沙龍的其他內容
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
這是 2016 年的舊文重新整理,這幾年應該很少聽到軟體生命週期管理了,裡面的部分概念被其他更夯的詞取代了,像是 DevOps,所以我在一開頭便選了張比較接近潮流的圖片,不過說真的,在這個領域,常常有很多新名詞出現,但真正落實的又有多少呢?
Thumbnail
這是 2016 年的舊文重新整理,這幾年應該很少聽到軟體生命週期管理了,裡面的部分概念被其他更夯的詞取代了,像是 DevOps,所以我在一開頭便選了張比較接近潮流的圖片,不過說真的,在這個領域,常常有很多新名詞出現,但真正落實的又有多少呢?
Thumbnail
本教學文章目標為使用 GitLab Pages 來協助達成隨機分配問卷或網址入口等需求
Thumbnail
本教學文章目標為使用 GitLab Pages 來協助達成隨機分配問卷或網址入口等需求
Thumbnail
有關 git add, git commit, git push
Thumbnail
有關 git add, git commit, git push
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
開發之前我們先來做一些前置準備,就如同一道料理在完成之前,會預先準備廚具、食材,而我們就來看看這些廚具與食材究竟能夠煮出什麼令人驚豔的料理吧! ● IDE: 基礎版(Remix)、進階版(Vscode)。 ● 程式語言: Solidity。 ● 程式碼儲存庫: Github。 這邊我們會以最簡單的方
Thumbnail
開發之前我們先來做一些前置準備,就如同一道料理在完成之前,會預先準備廚具、食材,而我們就來看看這些廚具與食材究竟能夠煮出什麼令人驚豔的料理吧! ● IDE: 基礎版(Remix)、進階版(Vscode)。 ● 程式語言: Solidity。 ● 程式碼儲存庫: Github。 這邊我們會以最簡單的方
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News