Git结帐标记问题 - 标记未更改

时间:2015-06-03 21:22:37

标签: git git-checkout

我的Git仓库中有一些标签:

  • 释放/ 20-000RC1
  • 释放/ 21-000RC1
  • 释放/ 22-000RC1

首先我查看发布/ 20-000RC1:

git checkout release/20-000RC1
git status
  

HEAD在发布时/ 20-000RC1分离

状态正确显示发布/ 20-000RC1

然后我查看发布/ 21-000RC1:

git checkout release/21-000RC1
git status
  

HEAD在发布/ 21-000RC1分离

状态正确显示发布/ 21-000RC1

现在终于我结帐了发布/ 22-000RC1,并且......

git checkout release/22-000RC1
git status
  

HEAD在释放/ 21-000RC1分离   无需提交,工作目录清理

而不是发布/ 22-000RC1“git status”显示我发布/ 21-000RC1。

我非常困惑为什么在结束发布/ 22-000RC1后,它在执行状态时保持在21-000RC1?

2 个答案:

答案 0 :(得分:2)

  

合并不是问题,而是我做“git checkout release / 22-000RC1”然后当我做“git status”它告诉我我正在发布/ 21-000RC1。

运行以下命令。他们将显示提交的sha1-s,连接到这些标签。产出是否相等?

git rev-parse release/21-000RC1
git rev-parse release/22-000RC1

如果它们相等,那么标签就在同一个提交中。您结帐到release/22-000RC1,这是一个标有release/21-000RC1的提交,并且该标记是之前创建的,因此会显示其名称。

您可以使用以下命令列出指向当前提交的所有标记。

git tag --points-at HEAD

答案 1 :(得分:0)

您是在检查发布/ 20-000RC1还是在检查git hash f425ed7?如果您要检查git哈希,那么您就不在分支机构上了。 "分离头"是一个非常痛苦的消息,但它只是说"嘿,在这里放一个分支标签,这样你就不会丢失你的工作。"

相关问题