您可以将 HEAD 视为 “当前分支”。当您使用git checkout
切换分支时,HEAD 修订版将更改为指向新分支的提示。
您可以通过以下方式查看 HEAD 指出的内容:
cat .git/HEAD
在我的例子中,输出是:
$ cat .git/HEAD
ref: refs/heads/master
HEAD 可以引用与分支名称无关的特定修订。这种情况称为分离的 HEAD 。
引用其他人 :
头只是对提交对象的引用。每个头都有一个名称(分支名称或标签名称等)。默认情况下,每个存储库中都有一个名为 master 的头。存储库可以包含任意数量的头。在任何给定的时间,一个头被选为 “当前头部”。这个头部别名为 HEAD,总是以大写字母 “。
注意这个区别:“head”(小写)指的是存储库中任何一个指定的头; “HEAD”(大写)仅指当前活动的头部。这种区别在 Git 文档中经常使用。
可以在这里找到另一个很好的来源,它可以快速覆盖 git 的内部工作方式(以便更好地理解 head / HEAD)。引用(ref :) 或头或分支可以被视为在提交历史记录中粘贴到提交的便利贴。通常它们指向一系列提交的提示,但它们可以通过git checkout
或git reset
等移动。
我推荐 github 开发人员 Scott Chacon 的这个定义 [ 视频参考 ]:
Head 是您目前的分支。这是一个象征性的参考。它是对分支的引用。你总是有 HEAD,但是 HEAD 将指向其中一个指针,指向你所在的一个分支。它是您下次提交的父级。它应该是最后签出到您的工作目录中的内容...... 这是您的工作目录的最后已知状态。
整个视频将对整个 git 系统进行公平的介绍,所以如果有时间的话,我也建议你全部观看。