[教學] git-2 原理 - 討論區

[教學] git-2 原理

visibility文章瀏覽次數 133 reply_all文章回覆數 0

特種兵

特種兵圖像(預設)

2020-01-15 19:53:12

From:1.161.141.184

多數的版控軟體記憶我們操作的每個步驟,當想要還原時從第一個步驟開始一路走下來,

所以可以還原到各個時間點。

git 比較不同,他是類似 snapshot 的方式,中文好像叫做快照吧,因此他擁有每個版本的完整資料。

假設現在我們的第一個版本有 a, b, c 三個檔案, 第二版修改 a, 第三版刪除 b, 第四版修改 c 並新增 d.

此時:

  • 第二版的 a 是新的,而 b 跟 c 都是指向第一版的 b 跟 c
  • 第三版的 a 是指向第二版的 a 而 c 則是指向第一版的 c
  • 第四版的 a 是指向第二版的 a 而 c 跟 d 都是新的

所以 git 不需要每次都從最原始的第一個步驟開始依據一個個步驟把資料還原,而是每個版本都有完整的快照,

也因為是指向的方式,所以重複的資料不會多占空間。

git 屬於分散式架構,不需要網路或他臺主機也可以在本機獨立運作,通常在該資料夾下有個 .git 的資料夾就是用來紀錄 git 的相關資訊

因為 git 最初是由 linux 核心的開發者所撰寫出來的,所以也模訪了 linux 的架構,

像是資料夾的結構、下指令的參數語法,以及點開頭的檔案或資料夾代表隱藏檔等,

這些都是 linux 的 bash 風格。

但就算沒用過 linux 的使用者也不用擔心,就讓我們從頭開始吧。