git HEAD 详解
概述
git 中有不少概念,这些概念是 git 比较复杂的地方,git 新手甚至不乏一些老手也会对某些概念模糊不清,本文将会为大家讲述 git HEAD 这个概念,希望对大家有用。
什么是 git HEAD
HEAD 是一个特殊的 ref,可以把他想象成一个全局指针,总是指向当前检出的 commit。HEAD 存储在名为 .git/HEAD 的文件中,HEAD 通常指向当前活动分支的最新提交。
注:不知道 ref 的同学请移步 git refs 详解。
假设我们当前在 dev 分支,我们查看下 HEAD 文件的内容:
cat .git/HEAD
# 输出如下
ref: refs/heads/dev
在 git heads 详解 中我们说到 refs/heads/dev 文件的内容是 dev 分支的最后一次提交的 commit id。
当我们切换分支时或者切换到某个 commit,HEAD 的内容也会随之改变。看下面这张图可能更容易理解:
git HEAD 应用
你可能经常遇到一个场景,你辛辛苦苦做好一个功能,提交了一个 commit,然后被告知需求取消了,这个时候你需要撤销最后一次提交,可以使用 git reset
命令:
#撤销最近一次提交
git reset HEAD~1
#如果想撤销最近两次提交
git reset HEAD~2
#撤销最近三次提交
git reset HEAD~3
git reset
命令中就是用到了 HEAD。HEAD 指向当前 commit,HEAD~1
指向前一个 commit,看下面的示意图:
有问题吗?点此反馈!
温馨提示:反馈需要登录