基础概念
直接快照,而非比较差异
git和其他版本控制系统的主要差别在于,git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异。 git并不保存这些前后变化的差异数据。git更像是把变化的文件做快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件做一次快照,然后板寸一个指向这次快照的索引。
近乎所有操作都可本地执行
在git中的绝大多数操作都只需要访问本地文件和资源,不用联网。因为git在本地磁盘上就保存着所有有关当前项目的历史更新。
时刻保持数据完整性
在保存到git之前,所有数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。 git使用SHA-1算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1哈希值,作为指纹字符串。
多数操作进添加数据
常用的git操作大多仅仅是把数据添加进数据库。
三种状态
对于任何一个文件,在git内部都只有三种状态:已提交,已修改和已暂存。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示吧已修改的文件放在下次提交时要保存的清单中。 每个项目度有一个git目录,他是git用来保存元数据和对象数据库的地方。