如何检查我的GIT仓库中是否存在标签。
我得到一些标记名作为输入,我必须检查它是否是if else statement.
的有效标记
TAG = “标记名”
我试过了:
if [ git rev-parse ${TAG} >/dev/null 2>&1 ]; then
echo "tag exists";
else
echo "tag does not exist";
但它不起作用
答案 0 :(得分:3)
您可以将if
与不带test
的命令(或同义词[
)一起使用,if
命令会将退出状态视为条件。如果它退出并且成功" (即0
)然后它是真的,否则它是假的:
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "tag exists";
else
echo "tag does not exist"
fi
答案 1 :(得分:0)
if git show-ref --tags tag1 --quiet; then
echo "tag exists"
else
echo "tag doesn't exist or error in command"
fi
如果未找到标签,git show-ref
以退出代码 1 退出(请参阅 Git code,没有找到它的文档)。
不过,还有其他 if 结构可以检查退出代码(参见例如 this question)。
git rev-parse
限制为仅标记git rev-parse --tags=$TAG
仅查找标签(=
是必需的),而 git rev-parse $REF
查找所有类型的 revisions(即还有分支和 SHA)。