【问题标题】:Checkout Git tag but HEAD referring to branch签出 Git 标签,但 HEAD 指的是分支
【发布时间】:2019-04-13 17:06:49
【问题描述】:

当我 git checkout 到 Git 标记时,HEAD 指的是我创建标记的分支。

这正常吗?

或者我哪里做错了?

任何解释将不胜感激。 谢谢

【问题讨论】:

  • 一个标签是指一个提交。分支指的是提交。无论是签出标签还是分支,效果都是将 HEAD 设置为标签或分支所引用的提交。

标签: git git-checkout git-tag


【解决方案1】:

当我 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

【讨论】:

  • 签出标签会让您总是处于分离状态。分支是否指向同一个提交并不重要。
猜你喜欢
  • 2011-07-31
  • 2018-11-27
  • 2016-06-25
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多