[DanoR的學習筆記][Git入門][01][Git是什麼?][一點都不通俗版]

DanoR發表於2014-04-23

Git是什麼?

  • Git是一個會儲存你對資料夾大部分修改的程式。

Git除了“儲存”還會什麼?

  • 最基本的功能除了“儲存”,還有“複製”和“合併”
  • 複雜的功能大部分基於上面三種。

Git是“懶惰”的

  • Git不會主動去做什麼,除非你叫它去做什麼。

  • 因為Git不會主動做什麼,所以你可以對你的資料夾做很多很多更改。直到你認為可以“儲存”為止。

    • 我在上面的描述是“大部分修改”而不是“所有修改”
  • 每份“儲存”在Git裡叫做“版本”
    每份“儲存”在Git裡叫做“版本”(因為很重要所以說兩次。)

Git是“分散式”的

  • 首先要知道,和“分散式”相對的詞語是“集中式”
  • 假定你現在在一個小型網路裡幹活,網路裡有你和幾個同事,還有一臺伺服器
    假定你現在在一個小型網路裡幹活,網路裡有你和幾個同事,還有一臺伺服器

  • 如果Git是“集中式”

    • 只有伺服器會擁有資料夾所有版本
    • 每次工作,你只會從伺服器獲得一個版本(一般是最新的,按你的需求可以獲得舊的)

    • 你是被動的
      因為需要等待伺服器返回版本。上傳版本時,也需要等待伺服器完全接收。

    • 要是伺服器掛了,你和你的同事就沒辦法再獲得其他版本
      如果這時你需要用到其他版本,你不得不停止工作等待伺服器復活。(明顯這樣不好。)

  • 所以Git是分散式的!

    • 你、你的同事、伺服器都會擁有資料夾所有版本

    • 你現在是主動的!
      因為你擁有全部版本
      所以無論你做什麼,你只需從本地獲得版本,而不是從伺服器獲得版本。

    • 你修改的版本,還必須和你的同事的版本合併
      你可以直接和同事合併。但是一旦同事多起來,這效率會明顯下降

    • 所以最好還是要一臺伺服器作為中心,來合併所有版本,提高效率
      哪怕伺服器掛了,只會令合併同事的版本變麻煩一點,而不會再停止工作
      (這就是分散式)

相關文章