该HEAD点出最后在当前结账分公司提交。它就像一个指向任何引用的指针。HEAD 可以理解为“当前分支”。当您使用“checkout”切换分支时,HEAD 将转移到新分支。
上图显示了 HEAD 引用 commit-1,因为在 commit-1 处完成了“checkout”。当您进行新的提交时,它会转移到较新的提交。git head 命令用于查看不同参数的 Head 状态。它将 Head 的状态存储在.git\refs\heads目录中。让我们看看下面的例子:
Git Show Head
在git show head被用于检查头的状态。此命令将显示头部的位置。
句法:
$ git show HEAD
输出:
在上面的输出中,您可以看到 Head 的提交 ID 已给出。这意味着 Head 在给定的提交上。
现在,检查项目的提交历史。您可以使用 git log 命令来检查提交历史。请参阅以下输出:
正如我们在上面的输出中看到的,最近提交和 Head 的提交 ID 是相同的。因此,很明显,最后一次提交具有 Head。
我们还可以通过提交 ID 检查 Head 的状态。从上面的输出中复制提交 id 并使用git show命令粘贴它。如果提交 id 是最后一次提交的 id,它的结果与git show head命令相同。请参阅以下输出:
以上输出与 git show 输出相同。
HEAD 能够引用与分支名称无关的特定修订。这种情况称为分离的 HEAD。
Git 分离头
GitHub 会随着时间的推移跟踪所有提交或快照。如果您在终端中检查“git log”,则可以显示直到第一次提交之前的所有提交。分离的 HEAD 模式允许您发现存储库的旧状态。它是 Git 中的自然状态。
当Head 不指向最近的提交时,这种状态称为 detached Head。如果您使用较旧的提交结帐,它将支持分离的头部条件。请参阅以下示例:
我已经复制了旧的提交 ID。现在我将使用此 ID 进行检查。
正如您在给定示例中看到的,Head 没有指向最近的提交。它被称为分离的头部状态。始终建议,不要在分离的 Head 上提交。