【发布时间】:2019-04-13 17:06:49
【问题描述】:
当我 git checkout 到 Git 标记时,HEAD 指的是我创建标记的分支。
这正常吗?
或者我哪里做错了?
任何解释将不胜感激。 谢谢
【问题讨论】:
-
一个标签是指一个提交。分支指的是提交。无论是签出标签还是分支,效果都是将 HEAD 设置为标签或分支所引用的提交。
标签: git git-checkout git-tag
当我 git checkout 到 Git 标记时,HEAD 指的是我创建标记的分支。
这正常吗?
或者我哪里做错了?
任何解释将不胜感激。 谢谢
【问题讨论】:
标签: git git-checkout git-tag
当我 git checkout 到 Git 标签时,HEAD 指的是我创建标签的分支。这正常吗?
是的
每当您使用 git checkout git 时,请更改存储库的 HEAD。 HEAD 只是对提交的引用。
如果您的提交不是当前分支中的最新提交,您将处于分离的 HEAD。
在此处阅读有关分离式 HEAD 的更多信息: How to move HEAD back to a previous location? (Detached head)
Git 将您的提交存储在一个列表中,就像一个序列。这意味着每个提交都指向存储在提交的父属性中的上一个提交。当您签出标签时,它通常是过去的“旧”提交。这会导致 HEAD 分离。
... HEAD 指的是我创建标签的分支
当你检出 git 标签时,它并不指向创建标签的分支,因为如果你将该分支合并到其他分支,该标签可以位于多个分支中。
Git 处于分离 HEAD 状态,您不在任何分支上,而是处于 分离 HEAD
【讨论】: