HEAD 工作数 索引

1. HEAD

2. 工作树、索引

3. 区别

答:

1. HEAD

在git中,可以存在很多分支,其本质上是一个指向commit对象的可变指针,而Head是一个特别的指针,是一个指向你正在工作中的本地分支的指针

当我们切换分支的时候,HEAD指针通常指向我们所在的分支,当我们在某个分支上创建新的提交时,分支指针总是会指向当前分支的最新提交

所以,HEAD指针 ——–> 分支指针 ——–> 最新提交

2. 在Git管理下,大家实际操作的目录被称为工作树,也就是工作区域

在数据库和工作树之间有索引,索引是为了向数据库提交作准备的区域,也被称为暂存区域

Git在执行提交的时候,不是直接将工作树的状态保存到数据库,而是将设置在中间索引区域的状态保存到数据库

因此,要提交文件,首先需要把文件加入到索引区域中。

所以,凭借中间的索引,可以避免工作树中不必要的文件提交,还可以将文件修改内容的一部分加入索引区域并提交

3.

补充

补充:三个核心概念精确定义:

  • HEAD:一个指针,指向当前所在的本地分支(间接指向最新 commit),切换分支时跟着移动;处于 detached HEAD 状态时直接指向 commit。
  • 工作树(Working Tree):磁盘上你正在编辑的文件目录。
  • 索引 / 暂存区(Index / Stage):一个二进制文件(.git/index),保存"下次提交要写入的内容快照",git add 把工作区的修改写入索引,git commit 把索引内容写入版本库。 流程示意:工作区 → (git add) → 索引 → (git commit) → 版本库 → (git push) → 远端

来源整理自:我的有道云笔记