我的 Git 存储库中有一些标签:
- 发布/20-000RC1
- 发布/21-000RC1
- 发布/22-000RC1
首先我查看release/20-000RC1:
git checkout release/20-000RC1
git status
HEAD detached at release/20-000RC1
状态正确显示release/20-000RC1
然后我查看release/21-000RC1:
git checkout release/21-000RC1
git status
HEAD detached at release/21-000RC1
状态正确显示release/21-000RC1
现在我终于 checkout 了release/22-000RC1,并且...
git checkout release/22-000RC1
git status
HEAD detached at release/21-000RC1
nothing to commit, working directory clean
“git status”显示的是release/21-000RC1,而不是release/22-000RC1。
我很困惑为什么在 checkout release/22-000RC1后,在执行状态时它仍保留在21-000RC1上?
最佳答案
The merge is not the issue, but rather the fact that I do "git checkout release/22-000RC1" and then when I do "git status" it tells me that I'm on release/21-000RC1.
运行以下命令。它们将显示与这些标签相关的提交的 sha1-s。输出相等吗?
git rev-parse release/21-000RC1
git rev-parse release/22-000RC1
如果它们相等,则标签位于同一提交上。您 checkout 到 release/22-000RC1
,这是一个标记有 release/21-000RC1
的提交,并且该标记是之前创建的,因此显示的是它的名称。
您可以使用以下命令列出所有标签,指向当前提交。
git tag --points-at HEAD
关于Git checkout 标签问题 - 标签未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30631000/