学习Git前零星的了解些基本知识
一,什么是版本控制
比如,一个文件改了一遍又一遍,突然发现更改的思路完全不正确。想回到某次修改之前怎么办?版本控制就良好的解决了这些问题。
它可以记录文件每次修改的变化,以方便以后进行查阅某个特定的版本。
最简单的版本控制,每个版本修改前拷贝一个副本,然后在此副本做修改。想回到修改之前那就很简单。
如果多人协作的话,就需要集中式的版本控制,有一台服务器保存着文件所有的版本。每个人都取出最新的文件或提交更新到服务器。这也是很常见的版本控制方式。
但是如果服务器出现故障,那么所有人都不可以提交更新。假如服务器的磁盘出现问题,很可能就会丢失数据。因为你不能保证,本地有人提取出了最新的文件。
有句话很重要,只要整个项目的历史记录存放在单一的位置,就有丢失所有历史数据的风险。
于是分布式的版本控制应运而生。客户端提取出的项目,不仅是最新的文件快照,而且还把代码仓库完整的download下来了。
这也就意味着,即使服务器出现问题,只要有人曾提取过,就可以通过本地的仓库进行恢复。(这个实在吊炸天)
二,Git若干特点
1,Git只关心文件的整体是否发生变化,而不关心文件的内容发不发生变化。
变化文件的快照会被保存。
比如A文件被修改了,提交更新时,就会发现它被修改。(通过计算文件的sha1值)
A被修改,git就会对该文件做一个快照。并保存指向这次快照的索引。文件没有变化,那么Git不会保存。
2,几乎所有的操作