如何检测是否根据标签检查了实际工作?
假设我正在执行以下GIT命令:
> git checkout 1.2.3
git status
告诉我我的HEAD
“指针”处于分离状态。如果我直接结帐SHA,例如也可能是这种情况通过:
> git checkout f1d96551ab404de047c846a0a59f76e8505046c9
我怎么能发现HEAD
实际上指向一个带有标签的提交?
Thx
答案 0 :(得分:3)
git tag --points-at HEAD
它列出了指向HEAD
提交的标签。
如果标记1.2.3
指向f1d96551ab404de047c846a0a59f76e8505046c9
,并且您想找出分离的HEAD是由于git checkout 1.2.3
或git checkout f1d96551ab404de047c846a0a59f76e8505046c9
而引起的,请运行git reflog
。 / p>
答案 1 :(得分:2)
您的HEAD
是否直接(分离)指向已标记的提交或指向其末端已标记的分支,
git describe
仅当标签直接指向标签时,才会输出标签的确切名称,否则它将以-<numberOfCommitsSinceTag>-g<commitHash>
后缀
但是作为一个附带说明,HEAD
不能指向标签。它总是指向分支或提交。
(此外,如果您的回购代码为未注释类型,请为--tags
使用describe
标志。)