Den*_*boy 7 git bash if-statement
如何检查我的 GIT 存储库中是否存在标签。我得到一些标记名作为输入,我必须检查它是否是带有if else statement.
TAG="tagname"的有效标记
我试过:
if [ git rev-parse ${TAG} >/dev/null 2>&1 ]; then
echo "tag exists";
else
echo "tag does not exist";
Run Code Online (Sandbox Code Playgroud)
但它没有用
Eri*_*ouf 12
您可以使用if不带test(或同义词[)的if命令,该命令会将退出状态视为条件。如果它以“成功”(即0)退出,则为真,否则为假:
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "tag exists";
else
echo "tag does not exist"
fi
Run Code Online (Sandbox Code Playgroud)
Dom*_*nik 12
if git show-ref --tags tag1 --quiet; then
echo "tag exists"
else
echo "tag doesn't exist or error in command"
fi
Run Code Online (Sandbox Code Playgroud)
git show-ref如果未找到标签,则以退出代码 1 退出(请参阅Git 代码,未找到相关文档)。不过,还有其他 if 结构来检查退出代码(参见例如这个问题)。
git rev-parse标签git rev-parse --tags=$TAG只查找标签(这=是必要的),而git rev-parse $REF查找所有类型的修订(即还有分支和 SHA)。