Git是什麼?
- Git是一個會儲存你對資料夾的大部分修改的程式。
Git除了“儲存”還會什麼?
- 最基本的功能除了“儲存”,還有“複製”和“合併”。
- 複雜的功能大部分基於上面三種。
Git是“懶惰”的
-
Git不會主動去做什麼,除非你叫它去做什麼。
-
因為Git不會主動做什麼,所以你可以對你的資料夾做很多很多更改。直到你認為可以“儲存”為止。
- 我在上面的描述是“大部分修改”而不是“所有修改”。
-
每份“儲存”在Git裡叫做“版本”。
每份“儲存”在Git裡叫做“版本”。(因為很重要所以說兩次。)
Git是“分散式”的
- 首先要知道,和“分散式”相對的詞語是“集中式”。
-
假定你現在在一個小型網路裡幹活,網路裡有你和幾個同事,還有一臺伺服器。
假定你現在在一個小型網路裡幹活,網路裡有你和幾個同事,還有一臺伺服器。 -
如果Git是“集中式”。
- 只有伺服器會擁有資料夾的所有版本。
-
每次工作,你只會從伺服器獲得一個版本(一般是最新的,按你的需求可以獲得舊的)
-
你是被動的
因為需要等待伺服器返回版本。上傳版本時,也需要等待伺服器完全接收。 -
要是伺服器掛了,你和你的同事就沒辦法再獲得其他版本。
如果這時你需要用到其他版本,你不得不停止工作,等待伺服器復活。(明顯這樣不好。)
-
所以Git是分散式的!
-
你、你的同事、伺服器都會擁有資料夾的所有版本。
-
你現在是主動的!
因為你擁有全部版本。
所以無論你做什麼,你只需從本地獲得版本,而不是從伺服器獲得版本。 -
你修改的版本,還必須和你的同事的版本合併。
你可以直接和同事合併。但是一旦同事多起來,這效率會明顯下降。 -
所以最好還是要一臺伺服器作為中心,來合併所有版本,提高效率。
哪怕伺服器掛了,只會令合併同事的版本變麻煩一點,而不會再停止工作。
(這就是分散式)
-