瞭解 Git 歷程記錄
Git 以與集中式版本控制系統(CVCS)基本不同的方式來代表歷程記錄,例如 Team Foundation 版本控制、Perforce 或 Subversion。 集中式系統會將每個檔案的個別歷程記錄儲存在存放庫中。 Git 會將歷程記錄儲存為整個存放庫的快照集圖表。 這些快照集稱為 Git 中的認可 ,可以有多個父代,建立看起來像圖形而非直線的歷程記錄。 這段歷史差異非常重要,而且是熟悉 CVCS 的用戶發現 Git 混淆的主要原因。
認可歷程記錄基本概念
從簡單的歷程記錄範例開始:具有三個線性認可的存放庫。
認可 A 是認可 B 的父代,而認可 B 是認可 C 的父代。此歷程記錄看起來與 CVCS 非常類似。 指向認可 C 的箭號是分支。 分支是特定認可的指標,這就是為什麼分支在 Git 中是如此羽量且容易。
相較於 CVCS,Git 的主要差異在於開發人員有自己的存放庫完整復本。 他們需要從遠端存放庫取得最新的認可,讓本機存放庫與遠端存放庫保持同步。 若要這樣做,他們會使用下列命令提取 main 分支:
git pull origin main
這會合併遠端存放庫中主要分支的所有變更,依預設會使用 Git 名稱 origin
。 此提取帶來了一個新的認可,而本機存放庫中的主要分支會移至該認可。
瞭解分支歷程記錄
現在是時候變更程序代碼了。 在平行處理不同功能時,通常會有多個作用中分支。 這與 CVCS 形成鮮明對比,其中新分支繁重且很少建立。 第一個步驟是使用下列命令簽出至新的分支:
git checkout -b cool-new-feature
這是結合兩個命令的快捷方式:
git branch cool-new-feature
建立分支git checkout cool-new-feature
開始在分支中工作
兩個分支現在指向相同的認可。 假設在兩個新的認可 E 和 F 中 cool-new-feature
,分支上有一些變更。
認可可透過 cool-new-feature
分支存取,因為它們已認可至該分支。
完成此功能之後,它必須合併到main分支中。 若要這樣做,請使用下列命令:
git merge cool-new-feature main
當合併時,記錄的圖表結構就會變成可見。 當分支合併至另一個分支時,Git 會建立新的認可。 這是合併認可。 由於沒有衝突,因此未包含此合併認可的任何變更。 如果發生衝突,合併認可會包含解決它們所需的變更。
真實世界的歷史
以下是 Git 歷程記錄的範例,更類似於小組作用中開發中的程式碼。
有三個人會同時將自己的分支認可合併到 main
分支。
下一步
深入瞭解如何在 GitHub 和 Azure Repos 或 Git 記錄歷程記錄簡化中使用 Git 歷程記錄。