Git 如何判断当前版本是否已标记

Git 如何判断当前版本是否已标记,git,Git,我想知道如何判断当前版本是否被标记并提取标记名 比列出所有不同的标记并将哈希与脚本进行比较要简单一些。您可以使用git descripe--abbrev=0--tags获得分支中的最后一个标记,并检查它是否指向头提交 您可以看到最新的用分支和标记“修饰”的提交:git log--decoration-1您可以使用git descripe--abbrev=0--tags获取分支中的最后一个标记,并检查它是否指向提交头 您可以看到最新的提交被分支和标记“修饰”:git log--decoration

我想知道如何判断当前版本是否被标记并提取标记名


比列出所有不同的标记并将哈希与脚本进行比较要简单一些。

您可以使用git descripe--abbrev=0--tags获得分支中的最后一个标记,并检查它是否指向头提交


您可以看到最新的用分支和标记“修饰”的提交:
git log--decoration-1

您可以使用
git descripe--abbrev=0--tags
获取分支中的最后一个标记,并检查它是否指向提交头

您可以看到最新的提交被分支和标记“修饰”:
git log--decoration-1

git description--exact match
仅在标记当前提交时返回标记。您可以运行它并检查错误代码

$ git describe --exact-match
fatal: no tag exactly matches '609ed4a5b012590d1017c502823dc0fc4c80de50'
$ echo $?
128
$ git checkout v2018-11-07-101858
Note: checking out 'v2018-11-07-101858'.
...
HEAD is now at 746f26a3 ...
$ git describe --exact-match
v2018-11-07-101858
$ echo $?
0
git descripe--exact match
仅在标记当前提交时返回标记。您可以运行它并检查错误代码

$ git describe --exact-match
fatal: no tag exactly matches '609ed4a5b012590d1017c502823dc0fc4c80de50'
$ echo $?
128
$ git checkout v2018-11-07-101858
Note: checking out 'v2018-11-07-101858'.
...
HEAD is now at 746f26a3 ...
$ git describe --exact-match
v2018-11-07-101858
$ echo $?
0

short
(装饰中不包括标记)不是默认的装饰模式吗?我想您需要
--decoration=full
将它们添加到日志输出中。(然而,让我们注意到,这可能随着git版本的历史发生了变化。)
short
full
之间的区别并不是在装饰中包含标记,而是始终包含标记。在
short
模式下
git
只显示姓名(如
master
),在
full
模式下
git
显示全名(
refs/heads/master
)。默认装饰模式不是
short
(不包括装饰中的标记)吗?我想您需要
--decoration=full
将它们添加到日志输出中。(然而,让我们注意到,这可能随着git版本的历史发生了变化。)
short
full
之间的区别并不是在装饰中包含标记,而是始终包含标记。在
short
模式下
git
仅显示名称(如
master
),在
full
模式下
git
显示全名(
refs/heads/master
)。