Git学习——基础知识
Git是一个 分布式版本控制系统 (Distributed Version Control System,简称 DVCS)。因为每一次的克隆操作,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来 。 1. Git对待数据——直接记录快照,而非差异比较 Git 和其它版本控制系统的主要差别在于对待数据的方法,其它大部分系统以文件变更列表的方式存储信息,将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。如下图所示: Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流 ,如下图所示: 2. Git保证数据的完整性 Git 中所有数据在存储前都计算校验和,然后以yi校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组 成的字符串,基于 Git 中文件的内容或目录结构计算出来。 3. Git文件的三种状态:已提交、已修改和已暂存 Git 有三种状态,你的文件可能处于其中之一