我的Git仓库中有一些标签:
首先我查看发布/ 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?
答案 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哈希,那么您就不在分支机构上了。 "分离头"是一个非常痛苦的消息,但它只是说"嘿,在这里放一个分支标签,这样你就不会丢失你的工作。"