Git - 生命週期



Git 是一種流行的版本控制技術,用於管理程式碼庫、跟蹤檔案更改和團隊協作。

瞭解 Git 倉庫的生命週期對於熟練掌握這項強大的技術至關重要。

Git 生命週期包含幾個階段,這些階段代表了檔案的狀態以及它們如何從僅僅是工作目錄的一部分轉變為版本控制歷史的一部分。Git 生命週期中的主要階段是:

  • 工作目錄 (Working Directory): 你在其中修改檔案的目錄。

  • 暫存區 (Staging Area): 也稱為索引,你的更改暫時儲存在此處,你在此處準備要提交的檔案。

  • Git 倉庫 (Git Directory): Git 在其中儲存所有版本歷史記錄,更改在此處作為提交儲存。

  • 遠端倉庫 (Remote Repository): 你在其中儲存版本歷史記錄並與他人協作的倉庫。

此概述為深入瞭解 Git 版本控制系統中每個狀態及其互動奠定了基礎。

工作目錄

工作目錄是 Git 生命週期開始時專案檔案存放的地方。它象徵著我們積極編寫、編輯和完善程式碼的本地環境。

定義

  • 專案檔案位於名為工作目錄的本地資料夾中。

  • 使用 `git init` 啟動版本控制後,Git 會檢測到這些檔案,但尚未開始跟蹤它們。

  • 目錄中還有一個隱藏的 .git 子目錄。

已跟蹤與未跟蹤檔案

  • 工作目錄包含可以暫存、編輯和未跟蹤的檔案。

  • 除非我們決定新增它們,否則檔案最初是未跟蹤的。

  • 我們可以指定要跟蹤哪些檔案以及要忽略哪些檔案;例如,我們可能會排除生成的或臨時檔案。

Git lifecycle

管理

  • 此目錄用作編輯和新增檔案的 workspace。

  • 在它們被專門新增到暫存區之前,在此處進行的更改不會對版本歷史記錄產生影響。

  • 我們可以透過這樣做來控制哪些更改被跟蹤。

過渡到暫存區

  • 需要使用 `git add` 將更改暫存才能將其包含在版本歷史記錄中。

  • 檔案不包含在提交歷史記錄中,並在暫存之前保留在工作目錄中。

要檢視工作目錄中檔案的狀態,請使用以下命令:

$ git status

此命令提供已暫存、未暫存或未跟蹤的檔案摘要,幫助你決定下一步該做什麼。

暫存區

暫存區是一個沙盒,用於分組、新增和排列需要提交到 Git 以跟蹤其版本的檔案。

定義

  • 暫存區是 Git 生命週期中的一個關鍵階段,我們在此處準備提交檔案。

  • 它在工作目錄和 Git 倉庫之間充當緩衝區。

  • 我們想要包含在下一次提交中的檔案在此處被選擇和組織。

新增檔案

  • git add 命令用於將檔案從工作目錄移動到暫存區。

  • 此命令會將檔案的當前狀態複製到暫存區。

  • 我們可以透過選擇要新增的檔案來排除某些檔案,例如臨時檔案或動態生成的檔案。

Git lifecycle

索引

  • 索引是將檔案新增到暫存區的過程。

  • 我們計劃提交的檔案的快照儲存在暫存區中,通常稱為索引

管理

  • 暫存區管理包含在提交中的更改。

  • 它確保僅跟蹤與專案先前版本相關的特定檔案。

Git 倉庫

Git 在 Git 倉庫中內部儲存所有版本歷史記錄、元資料和配置資料。

它包括配置檔案、索引(暫存區)、完整的提交歷史記錄等等。

定義

  • Git 將所有倉庫的物件資料庫和元資料儲存在 Git 倉庫中。

  • 它包括配置檔案、索引(暫存區)和完整的提交歷史記錄。

  • Git 需要此倉庫才能監督和監控版本控制的各個方面。

儲存提交資料

  • 當我們使用 git commit 命令時,Git 倉庫會儲存提交資料,其中包括已暫存檔案的快照、提交訊息、作者資訊和時間戳。

  • 所有提交物件(對於監控專案的版本歷史記錄至關重要)都儲存在此目錄中。

Git lifecycle

元資料

  • 除了每次提交的內容之外,Git 倉庫還包含其他重要的元資料,例如分支詳細資訊、配置設定和更改歷史記錄。

  • 這確保 Git 可以有效地檢索和管理所有專案版本。

角色

  • Git 管理版本、跟蹤更改以及提供版本控制所需功能的能力都依賴於 Git 倉庫。

  • 它充當倉庫的資料庫,儲存歷史記錄管理和版本跟蹤所需的所有資料。

Git 生命週期中的 GitHub 整合

Git 在本地管理版本控制,但 GitHub 添加了更多階段以進行遠端儲存和協作。

GitHub 以以下方式融入 Git 生命週期:

遠端倉庫

遠端倉庫是託管在伺服器或雲服務(如 GitHub、GitLab 或 BitBucket)上的專案的版本。它允許你與他人共享更改並協作處理專案。它作為 Web 專案的中央倉庫。

多個使用者可以使用遠端倉庫檢視、訪問和處理專案。

Git lifecycle

基本上,它是本地倉庫的線上映象。

推送更改

要將提交從本地倉庫上傳到遠端倉庫,請使用 `git push` 命令

$ git push

拉取更改

要使用遠端倉庫中的更改更新本地倉庫,請使用 git pull 命令

$ git pull origin main

使用分支

分支是 Git 的一個重要功能,允許你獨立處理不同的功能、修復或實驗。本節探討分支如何融入 Git 生命週期。

建立分支

要建立新分支,請使用 `git branch` 命令

$ git branch <branch-name>

此命令建立新分支,但不切換到該分支。要同時建立和切換到新分支,請使用:

$ git checkout -b <branch-name>

切換分支

要切換分支,請使用 `git checkout` 命令

$ git checkout <branch-name>

切換分支會將工作目錄中的檔案更新為與你正在切換到的分支的狀態匹配,允許你同時處理不同的任務。

合併分支

合併是將一個分支的更改合併到另一個分支的過程。要合併更改,請切換到要合併到的分支,然後使用 `git merge` 命令

$ git checkout main
$ git merge <branch-name>

此命令將 <branch-name> 中的更改合併到主分支。如果存在衝突,Git 會通知你,你需要手動解決這些衝突。

刪除分支

分支不再需要時,可以將其刪除以保持倉庫的組織性

$ git branch -d <branch-name>

此命令在本地刪除分支。如果要從遠端倉庫刪除分支,請使用:

$ git push origin --delete <branch-name>

管理 Git 生命週期最佳實踐

遵循最佳實踐可以幫助您最大限度地利用 Git 的功能,並維護一個乾淨、有序的程式碼庫。

  • 經常提交,並寫明清晰的提交資訊 - 頻繁進行小的提交,並使用清晰的提交資訊描述更改。此實踐有助於跟蹤進度,更容易識別問題,並簡化協作。

  • 策略性地使用分支 - 利用分支隔離不同功能、錯誤修復或實驗的工作。這允許您並行工作而不會干擾主程式碼庫。

  • 定期與遠端倉庫同步 - 透過定期拉取更改並推送您的提交,保持本地倉庫與遠端倉庫同步。這確保每個人都在使用最新的程式碼,並有助於避免衝突。

  • 清理不必要的 Branches - 定期刪除不再需要的分支,以保持程式碼庫整潔並防止混淆。

理解 Git 生命週期對於有效管理您的程式碼和與他人協作至關重要。

廣告