Git Head

17 Mar 2025 | 阅读 2 分钟

HEAD 指向当前检出分支中的最后一个提交。它就像指向任何引用的指针。HEAD 可以理解为“当前分支”。 当你使用“checkout”切换分支时,HEAD 会转移到新分支。

Git Head

上图显示了 HEAD 引用 commit-1,因为在 commit-1 处完成了“checkout”。 当你进行新的提交时,它会转移到新的提交。 git head 命令用于查看 Head 的状态以及不同的参数。 它将 Head 的状态存储在 .git\refs\heads 目录中。 让我们看下面的例子

Git 显示 Head

git show head 用于检查 Head 的状态。 此命令将显示 Head 的位置。

语法

输出

Git Head

在上面的输出中,你可以看到给出了 Head 的提交 ID。 这意味着 Head 位于给定的提交上。

现在,检查项目的提交历史记录。 你可以使用 git log 命令来检查提交历史记录。 请参阅下面的输出

Git Head

正如我们在上面的输出中看到的,最近的提交和 Head 的提交 ID 是相同的。 因此,很明显最后一个提交具有 Head。

我们还可以通过提交 ID 检查 Head 的状态。 从上面的输出复制提交 ID,并将其与 git show 命令一起粘贴。 如果提交 ID 是最后一个提交的 ID,其结果与 git show head 命令相同。 请参阅下面的输出

Git Head

上面的输出与 git show 输出相同。

HEAD 能够引用与分支名称不关联的特定修订版本。 这种情况称为分离的 HEAD。

Git 分离的 Head

GitHub 会跟踪所有提交或快照。 如果你在终端中检查“git log”,则可以显示所有以前的提交,直到第一次提交。 分离的 HEAD 模式允许你发现存储库的较旧状态。 这是 Git 中的一种自然状态。

Head 不指向最新的提交时,这种状态称为分离的 Head。 如果你检出较旧的提交,它将处于分离的 head 状态。 请参阅下面的例子

Git Head

我复制了较旧的提交 ID。 现在我将使用此 ID 检出。

Git Head

正如你在给定的示例中看到的,Head 不指向最新的提交。 这称为分离的 head 状态。 始终建议不要在分离的 Head 上提交。


下一个主题Git Origin Master