bash - 是否有一个 bash 表达式可以用来检查当前提交是否被标记?
问题描述
我正在寻找一个 bash 表达式来检查当前的 git commit 是否被标记。
解决方案
只要你的 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
例如,会成功的。
推荐阅读
- java - 有没有办法使用java找到本地网络中存在的服务器?
- r - 使用“NLEQSLV”包求解两个非线性方程
- typescript - 将联合类型转换为条件类型
- tensorflow - 为什么分类结果集中在CNN模型中的一类?
- javascript - 实现自定义实用程序而不是`window.location.assign`
- javascript - 打字稿 - 不可分配给学生打字
- powershell - 比较 2 个大文件,用 powershell 还是其他方式?
- angular - Ionic 3 FireReader 不工作,但 Ionic 4 可以
- arrays - R 反向复位计数器到复位时间
- validation - 如何测试字符串输入?(Dyalog APL)