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

更新於 發佈於 閱讀時間約 6 分鐘
  有此一說:身為軟體開發工程師,你可以沒有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 是世界上最大的開放原始碼社群
  也因為為全世界最大的開放原始碼社群,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!現代人不能不知道的協同合作平台》/ 謝政廷 著
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
9會員
25內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
深智數位的沙龍 的其他內容
  卷積神經網路(Convolutional Neural Networks,CNN),其應用包括影像辨識、自然語言處理(NLP)等領域。若能從其發展至今的脈絡開始了解,必定可以更進一步地理解專案的想法,將該技術掌握得更得心應手。以下就其發展和結構分別詳細說明。 1. LeNet
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
大部分處理影像的神經網路,例如簡單的神經網路、CNN、物件偵測、語義分割、臉部辨識等,都是以像素為輸入特徵,圖神經網路 (GNN) 則是以圖形理論 (Graph Theory) 為基礎,以向量作為輸入,內含節點 (Node) 及邊 (Edge),如下圖,以圖形表達集團交叉持股的關係及持股比例。
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
2020年VMware發布VMware vSphere 7.0,透過整合資料中心伺服器、靈活設定資源等方式降低了營運成本,同時還可在不增加成本的情況下提供給使用者高可用、災難恢復等進階特性。
  卷積神經網路(Convolutional Neural Networks,CNN),其應用包括影像辨識、自然語言處理(NLP)等領域。若能從其發展至今的脈絡開始了解,必定可以更進一步地理解專案的想法,將該技術掌握得更得心應手。以下就其發展和結構分別詳細說明。 1. LeNet
Kubernetes是什麼? 1. Kubernetes是Google嚴格保密十幾年的秘密武器——Borg的一個開放原始碼版本。 2. Kubernetes是一個開放的開發平台。 3. Kubernetes是一個完備的分散式系統支撐平台。
大部分處理影像的神經網路,例如簡單的神經網路、CNN、物件偵測、語義分割、臉部辨識等,都是以像素為輸入特徵,圖神經網路 (GNN) 則是以圖形理論 (Graph Theory) 為基礎,以向量作為輸入,內含節點 (Node) 及邊 (Edge),如下圖,以圖形表達集團交叉持股的關係及持股比例。
要徹底了解深度學習,必須從數學/統計奠定基礎,從張量運算、偏微分、梯度下降優化求解,最後依據機率統計衡量模的效能指標,包括準確率 (Accuracy)、精確率 (Precision)、召回率 (Recall),乃至於混淆矩陣 (Confusion Matrix)。
TensorFlow、PyTorch 是目前佔有率最高的深度學習框架,初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展重點有所不同,例如在偵錯方面,PyTorch比較容易,但Tensor
2020年VMware發布VMware vSphere 7.0,透過整合資料中心伺服器、靈活設定資源等方式降低了營運成本,同時還可在不增加成本的情況下提供給使用者高可用、災難恢復等進階特性。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
更新專案的指令有: 01 `git fetch` 來對專案做「更新 Update」。 02 `git push` 來分享你對專案的「變更 Change」[3]。 03 `git remote` 來管理遠端的儲存庫。 有趣的是,fetch 這個字源於古英語的"fetan", 表示拿來,取回來的意思。
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
※ 簡短說明Git 和 Git Flow 是什麼?如何應用? Git 是什麼? Git是一個分散式版本控制軟體,能夠紀錄檔案的狀態變化,以及協調多個開發者之間的工作。它允許團隊成員協作編輯和管理項目的代碼庫,並且能夠追蹤文件的歷史變更、恢復到以前的版本、合併不同版本的代碼,以及解決代碼衝突等。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
關於Git(一) 版本管理系統是什麼?為什麼要用? 版本管理系統(Version Control System,VCS)是一種追蹤和管理項目代碼、文件和資源變更的工具。 工作流程上可防止每個人因使用自己的開發程式搭配不同且不相容的工具所引起的混亂。版本控制會同步處理版本,並確定變更不會與其他人
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
更新專案的指令有: 01 `git fetch` 來對專案做「更新 Update」。 02 `git push` 來分享你對專案的「變更 Change」[3]。 03 `git remote` 來管理遠端的儲存庫。 有趣的是,fetch 這個字源於古英語的"fetan", 表示拿來,取回來的意思。
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
※ 簡短說明Git 和 Git Flow 是什麼?如何應用? Git 是什麼? Git是一個分散式版本控制軟體,能夠紀錄檔案的狀態變化,以及協調多個開發者之間的工作。它允許團隊成員協作編輯和管理項目的代碼庫,並且能夠追蹤文件的歷史變更、恢復到以前的版本、合併不同版本的代碼,以及解決代碼衝突等。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
關於Git(一) 版本管理系統是什麼?為什麼要用? 版本管理系統(Version Control System,VCS)是一種追蹤和管理項目代碼、文件和資源變更的工具。 工作流程上可防止每個人因使用自己的開發程式搭配不同且不相容的工具所引起的混亂。版本控制會同步處理版本,並確定變更不會與其他人
Thumbnail
GitLab 是一個 DevOps、基於 Web 的免費開源平台 Git 儲存庫,為開發人員提供了所有必要的功能。它是一個用於開發 DevOps 應用程式的一體式平台。 GitLab 允許您執行原始碼管理、監控、安全性和專案規劃任務。 Update system packages: sudo