{GitHub}

cloud.li

GitHub & Git

wikipedia

GitHub 是一個線上軟體原始碼代管服務平台,用於公開程式或軟體的代碼。
使用 Git 作為版本控制軟體,由開發者克里斯·汪斯崔斯、P·J·海特和湯姆·普雷斯頓·沃納使用 Ruby on Rails 編寫而成。
在 2018 年,GitHub 被微軟公司收購。

GitHub 同時提供付費帳戶和免費帳戶。
這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。
根據在 2009 年的 Git 使用者調查,GitHub 是最流行的 Git 存取站點。
除了允許個人和組織建立和存取保管中的代碼以外,它也提供了一些方便社會化共同軟體開發的功能,即一般人口中的社群功能,包括允許使用者追蹤其他使用者、組織、軟體庫的動態,對軟體代碼的改動和 bug 提出評論等。
GitHub 也提供了圖表功能,用於概觀顯示開發者們怎樣在代碼庫上工作以及軟體的開發活躍程度。

截至 2022 年 6 月,GitHub 已經有超過 5700 萬註冊使用者和 1.9 億代碼庫(包括至少 2800 萬開原始碼庫),事實上已經成為了世界上最大的代碼代管網站和開源社群。
截至 2023 年 1 月 26 日,已經有超過 1 億開發人員使用 GitHub。

wikipedia

林納斯·托瓦茲(Linus Torvalds)
決定自行開發版本控制系統替代 BitKeeper,
以十天的時間編寫出 git 第一個版本。

又一個十天...

 Git 是什麼?

一個分散式版本控制系統

 分散式(Distributed)

  • 分散式表示資源和數據並不是集中在單一位置,而是分布於多個節點中。
  • 在版本控制中,這意味著每個使用者都擁有完整的版本庫副本,所有變更可以在本地完成,而不需要依賴中央伺服器。

 

特點

  1. 容錯性高:即使中央伺服器損壞,用戶仍可從本地資料恢復。
  2. 操作靈活:無需連線伺服器即可完成基本操作(如 Commit 和查看歷史)。
  3. 支援多人協作:使用者可以在自己的分支上自由修改,稍後再將變更合併。

 版本(Version)

  • 版本是指文件或專案的某個特定狀態或階段,通常與修改或更新相關。

  • 在版本控制中,每一次的變更(新增、刪除、修改)都會產生一個版本記錄,可以追蹤和管理。

 

特點

  1. 歷史記錄:所有版本的修改歷史都被保存下來,便於查詢和回溯。
  2. 版本標籤:每個版本通常有一個唯一的標籤(如 Commit ID),用來識別該版本的內容和時間。
  3. 便於回溯:當發生錯誤時,可以輕鬆回到某個穩定版本。

 控制系統(Control System)

  • 控制系統是一套工具或機制,用於管理和協調某些資源或流程。
  • 在版本控制中,控制系統的功能是:
    • 追蹤變更:記錄誰修改了什麼、什麼時候修改的,以及為什麼修改。
    • 防止衝突:在多人同時修改時,協助解決版本合併的問題。
    • 管理分支:允許同一專案的不同版本同時存在,並支援分支合併。

 

控制方式

  1. 集中式控制:所有操作必須透過中央伺服器(如 SVN)。
  2. 分散式控制:每人擁有完整的控制能力和資料(如 Git)。

 分散式版本控制系統

把這三個概念結合起來,就是一種工具(如 Git),它能讓多個開發者分散工作,並對專案的每個版本進行精確控制與管理

  • 分散式:每個人本地都有完整的資料庫。
  • 版本:能記錄專案的所有變更,隨時回到過去的狀態。
  • 控制系統:協助管理多人協作,避免衝突與混亂。

 比喻

  • 版本:像一本書的每個修訂版(1.0, 1.1, 2.0…)。
  • 控制系統:像編輯部的管理者,記錄誰修改了什麼,並處理不同意見的合併。
  • 分散式:每個編輯者手上都有完整的修訂版書籍,不依賴於編輯部的伺服器即可工作。

 Git

  • 功能:
    • 記錄修改歷史(每次提交稱為 Commit)。
    • 支援多人協作,處理程式碼合併衝突。
    • 提供回到舊版本的能力,防止意外刪除或覆蓋。

 GitHub 是什麼?

git: 一個分散式版本控制系統

hub: 中心

 GitHub

  • GitHub 是基於 Git 的線上平台,用於托管儲存庫(Repository),提供多人協作與版本管理的工具。
  • 功能:
    • 儲存程式碼,讓多人一起開發。
    • 支援 Issue 追蹤Pull Request,協助團隊管理專案。
    • 提供免費的開源專案託管,吸引全球開發者參與。

免費的ㄟ

GitHub

 基本功能

  1. 版本控制

    • GitHub 是基於 Git 的,可以追蹤程式碼的變更,記錄歷史版本,讓開發者可以輕鬆回到舊版本。
    • 每次更改(Commit)都會被記錄,並且可以標記、比較不同的版本。
  2. 儲存庫(Repository)

    • 儲存庫就像是一個專案的「家」,用來存放程式碼和相關文件。
    • 可以是公開的(公開給所有人)或私有的(僅限特定人員存取)。
  3. 分支與合併(Branch & Merge)

    • 分支:允許在不影響主分支(通常是 main 或 master)的情況下開發新功能。
    • 合併:完成開發後,可以將分支的變更合併回主分支。
  4. 協作功能

    • 開發者可以透過 Pull Requests 提交變更,供專案管理者審查和討論。
    • Issue 系統 用於報告錯誤、提出功能建議或追蹤工作進度。

 特色功能

  1. 開源專案社群

    • 許多著名的開源專案(如 React、Linux 核心等)都託管在 GitHub 上,開發者可以參與貢獻。
    • 支援 Fork 功能,讓你可以複製他人專案進行修改。
  2. GitHub Actions

    • 自動化流程工具,可以用來設定測試、部署等 CI/CD(持續整合/持續部署)工作流程。
  3. Markdown 支援

    • README 文件使用 Markdown 語法撰寫,讓專案介紹簡潔且易讀。
  4. GitHub Pages

    • 提供免費的靜態網站託管服務,可以用來快速部署專案網站或個人網頁。
  5. 安全功能

    • Dependabot 會檢查專案的相依套件是否有漏洞,並提供修補建議。
    • 支援加密的 SSH 和 HTTPS 協議來保障資料傳輸。

 常見用途

  • 開發軟體(個人或團隊合作)。
  • 託管開源專案,與全球開發者合作。
  • 紀錄學習過程,例如筆記或小型專案。
  • 發布和部署應用程式或網站。

 GitHub 與社群

GitHub 除了是開發工具,還是一個連結開發者的社群:

  • 你可以「觀星(Star)」其他人的專案,表示喜歡或關注。
  • 可以追蹤其他開發者的動態,學習新的技術或專案。
  • 許多公司和組織會在 GitHub 上建立官方儲存庫,發布程式碼與文件。

使用 GitHub

一、建立帳號與安裝工具

  1. 註冊 GitHub 帳號

    • 前往 GitHub 官方網站,點擊「Sign Up」,按照步驟完成註冊。
    • 設定你的用戶名稱、密碼、以及 Email。
  2. 安裝 Git

    • Git 官方網站 下載並安裝 Git(版本控制系統)。
    • 安裝完成後,開啟終端機(Terminal 或 CMD),設定你的 Git 身份:
       

       

       

       

  3. 安裝 GitHub 桌面應用程式(不一定要,但方便)

    • 如果不熟悉命令列操作,可以安裝 GitHub Desktop 進行圖形化操作。
git config --global user.name "你的 GitHub 用戶名稱"
git config --global user.email "你的 GitHub Email" 

二、創建與管理儲存庫

在 GitHub 網站上創建儲存庫

  1. 登入 GitHub,點擊右上角的「+」按鈕,選擇「New Repository」。
  2. 填寫儲存庫名稱(如 my-first-repo)。
  3. 選擇是否公開(Public)或私有(Private)。
  4. (可選)初始化儲存庫,勾選「Add a README file」。
  5. 點擊「Create Repository」。

三、本地開發與版本控制

動手時間

GitHub

By cloudream

GitHub

  • 76