如何检测是否根据标签检查了实际工作?假设我正在执行以下GIT命令:
> git checkout 1.2.3
字符串git status告诉我,我的HEAD“指针”处于分离状态。如果我直接 checkout SHA,也可能是这种情况,例如通过:
git status
HEAD
> git checkout f1d96551ab404de047c846a0a59f76e8505046c9
型我如何才能发现HEAD实际上指向一个提交,它上面有一个标签?Thx
hts6caw31#
git tag --points-at HEAD
字符串它列出了指向HEAD提交的标记。如果标记1.2.3指向f1d96551ab404de047c846a0a59f76e8505046c9,并且您想找出分离的HEAD是由git checkout 1.2.3还是git checkout f1d96551ab404de047c846a0a59f76e8505046c9引起的,请运行git reflog。
1.2.3
f1d96551ab404de047c846a0a59f76e8505046c9
git checkout 1.2.3
git checkout f1d96551ab404de047c846a0a59f76e8505046c9
git reflog
2exbekwf2#
无论您的HEAD是直接(分离)指向一个带标记的提交,还是指向一个其顶端带标记的分支,
git describe
字符串只有当标签直接指向它时,才会输出标签的确切名称,否则它将以-<numberOfCommitsSinceTag>-g<commitHash>作为后缀但是作为一个旁注,HEAD不能指向标记,它总是指向一个分支或一个提交。(Also,如果你的repo标签是无注解类型,使用describe的--tags标志。)
-<numberOfCommitsSinceTag>-g<commitHash>
describe
--tags
2条答案
按热度按时间hts6caw31#
字符串
它列出了指向
HEAD
提交的标记。如果标记
1.2.3
指向f1d96551ab404de047c846a0a59f76e8505046c9
,并且您想找出分离的HEAD是由git checkout 1.2.3
还是git checkout f1d96551ab404de047c846a0a59f76e8505046c9
引起的,请运行git reflog
。2exbekwf2#
无论您的
HEAD
是直接(分离)指向一个带标记的提交,还是指向一个其顶端带标记的分支,字符串
只有当标签直接指向它时,才会输出标签的确切名称,否则它将以
-<numberOfCommitsSinceTag>-g<commitHash>
作为后缀但是作为一个旁注,
HEAD
不能指向标记,它总是指向一个分支或一个提交。(Also,如果你的repo标签是无注解类型,使用
describe
的--tags
标志。)