Git Head
HEAD指向当前检出分支的最后一次提交。它类似于对任何引用的指针。HEAD可以理解为“当前分支”。当你使用“checkout”切换分支时,HEAD会传递到新的分支。
上面的图显示了HEAD引用了commit-1,因为在commit-1处执行了’checkout’操作。当你创建一个新的提交时,它会移到新的提交处。git head命令用于使用不同的参数查看Head的状态。它将Head的状态存储在 .git\refs\heads 目录中。让我们看下面的例子:
Git Show Head
git show head命令用于检查Head的状态。该命令将显示Head的位置。
语法:
$ git show HEAD
输出:
在上面的输出中,你可以看到Head的提交id已经给出。这意味着Head在给定的提交上。
现在,检查项目的提交历史。你可以使用git log命令来检查提交历史。请参考下面的输出:
从上述输出中我们可以看到,最近一次提交的提交 ID 和 Head 是相同的。因此,很明显最后一次提交就是 Head。
我们还可以通过提交 ID 来检查 Head 的状态。从上述输出中复制提交 ID,然后将其与 git show 命令一起粘贴。如果提交 ID 是最后一次提交的 ID,那么它的结果与 git show head 命令相同。请看下面的输出:
上述输出与git show输出相同。
Git分离Head
GitHub会跟踪所有的提交或快照。如果在终端中检查’git log’,可以显示直到第一次提交的所有之前的提交。分离的HEAD模式允许您发现存储库的旧状态。这是Git中的一种自然状态。
当 Head不指向最新的提交时,这种状态称为分离的Head 。如果您使用较早的提交检出,它将呈现分离的Head条件。参见下面的示例:
我复制了旧的提交ID。现在我将使用这个ID检出代码。
正如你在给定的例子中所看到的,Head不指向最新的提交。 这被称为脱离的Head状态。 我们始终建议,不要在脱离的Head上进行提交。