git原理

  1. git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名
  2. git 是把数据看作是对小型文件系统的一组快照,每次你提交更新在 git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引
  3. git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 git 中文件的内容或目录结构计算出来。
  4. git 有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。
    • 已提交表示数据已经安全的保存在本地数据库中
    • 已修改表示修改了文件,但还没保存到数据库中
    • 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
  5. git 项目的三个工作区域的概念:git 仓库、工作目录以及暂存区域
    • git 仓库目录是 git 用来保存项目的元数据和对象数据库的地方。这是 git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据
    • 工作目录是对项目的某个版本独立提取出来的内容。这些从 git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改
    • 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 git 仓库目录中,有时候也被称作’索引’
  6. 基本的 git 工作流程如下:
    • 在工作目录中修改文件
    • 暂存文件,将文件的快照放入暂存区域
    • 提交更新,找到暂存区域的文件,将快照永久性存储到 git 仓库目录