首页 > 解决方案 > 是否有一个 bash 表达式可以用来检查当前提交是否被标记?

问题描述

我正在寻找一个 bash 表达式来检查当前的 git commit 是否被标记。

标签: bashgit

解决方案


只要你的 Git 没有过时:

git tag --points-at HEAD

将打印出标签的名称,如果签出,则会导致当前提交的 detached-HEAD 签出。如果此列表为空,则没有此类标签;如果没有,则至少有一个标签。所以:计算标签的数量,看看它是否非零,或者检查命令的输出是否非空。(该命令的退出状态为零,无论它产生多少标签。)

if [ $(git tag --points-at HEAD | wc -l) -ne 0 ]; then echo yes; fi

或者:

if [ -n "$(git tag --points-at HEAD)" ]; then echo yes; fi

例如,会成功的。


推荐阅读