【Git】Git的HEAD和branch的理解

一句话总结:
HEAD本质上是一个指针,branch其实也是一个链表,我们下文会进行一步步操作,做验证

HEAD指针可以什么都不指向,也可以指向某一个分支的某一个commit上。

HEAD最终落脚于某一个分支的具体的commit的
我们想要比对两个分支之间的差异,使用的是diff命令

git diff 分支1 分支2

也可以使用两个commit具体的地址号进行比对,HEAD也可以指代当前的分支的某一次提交,可以使用HEAD^1表示HEAD的父类,也就是分支上的上一次提交,上上一次呢?HEAD^1^1

git diff HEAD HEAD~1 # HEAD指代的分支提交的跟上一次的比较
git diff HEAD HEAD^1 # HEAD指代的分支提交的跟上一次的比较
git diff HEAD HEAD^^ # 最近的一次提交对比上上一次提交
git diff HEAD HEAD~2 # 最近的一次提交对比上上一次提交

分离头指针

当我们直接通过git checkout ‘commit的hash编号’ 进行操作时,其实将我们的头指针指向了一个老的提交信息那,把头指针放到了一个全新的没有被git“承认”的未命名分支上了。虽然我们看起来还在某一个分支上,其实头指针已经和当前的分支分离了。
在这里插入图片描述
这时我们再看git log,可以看到HEAD指针没有指向任何的分支
在这里插入图片描述
此时我们再做的一些提交和变更,也是可以的,但是如果我们此时,切换回了其他的分支,我们在这个未命名的分支上做的所有操作,都不会被存储。

  • 如何弥补呢?
    可以进行创建新的分支,用以保存,我们在这个未命名的分支上所做的所有改动。
git branch <new-branch-name> '提交的编号'
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李易安QSR

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

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

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

打赏作者

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

抵扣说明:

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

余额充值