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) → 远端
来源整理自:我的有道云笔记



