【Git】HEAD、工作树和索引之间的区别

1. HEAD

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

简单来讲,就是你现在在哪儿,HEAD 就指向哪儿

例如当前我们处于master分支,所以HEAD这个指针指向了master分支指
在这里插入图片描述
然后通过调用git checkout test切换到test分支,那么HEAD则指向test分支,如下图:
在这里插入图片描述
但我们在test分支再一次commit信息的时候,HEAD指针仍然指向了test分支指针,而test分支指针已经指向了最新创建的提交(上一次提交的子节点),如下图:
在这里插入图片描述
这个HEAD存储的位置就在.git/HEAD目录中,查看信息可以看到HEAD指向了另一个文件

$ cat .git/HEAD
ref: refs/heads/master
$ cat .git/refs/heads/master
7406a10efcc169bbab17827aeda189aa20376f7f

这个文件的内容是一串哈希码,而这个哈希码正是master分支上最新的提交所对应的哈希码

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

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

2. 工作树和索引

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

2、索引就是我们通常说的暂存区,他其实是个文件

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InceptionZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值