Git是什么?
- Git是一个会保存你对文件夹的大部分修改的程序。
Git除了“保存”还会什么?
- 最基本的功能除了“保存”,还有“复制”和“合并”。
- 复杂的功能大部分基于上面三种。
Git是“懒惰”的
Git不会主动去做什么,除非你叫它去做什么。
因为Git不会主动做什么,所以你可以对你的文件夹做很多很多更改。直到你认为可以“保存”为止。
- 我在上面的描述是“大部分修改”而不是“所有修改”。
每份“保存”在Git里叫做“版本”。
每份“保存”在Git里叫做“版本”。(因为很重要所以说两次。)
Git是“分布式”的
- 首先要知道,和“分布式”相对的词语是“集中式”。
假定你现在在一个小型网络里干活,网络里有你和几个同事,还有一台服务器。
假定你现在在一个小型网络里干活,网络里有你和几个同事,还有一台服务器。如果Git是“集中式”。
- 只有服务器会拥有文件夹的所有版本。
每次工作,你只会从服务器获得一个版本(一般是最新的,按你的需求可以获得旧的)
你是被动的
因为需要等待服务器返回版本。上传版本时,也需要等待服务器完全接收。要是服务器挂了,你和你的同事就没办法再获得其他版本。
如果这时你需要用到其他版本,你不得不停止工作,等待服务器复活。(明显这样不好。)
所以Git是分布式的!
你、你的同事、服务器都会拥有文件夹的所有版本。
你现在是主动的!
因为你拥有全部版本。
所以无论你做什么,你只需从本地获得版本,而不是从服务器获得版本。你修改的版本,还必须和你的同事的版本合并。
你可以直接和同事合并。但是一旦同事多起来,这效率会明显下降。所以最好还是要一台服务器作为中心,来合并所有版本,提高效率。
哪怕服务器挂了,只会令合并同事的版本变麻烦一点,而不会再停止工作。
(这就是分布式)