git describe 命令

Git 基本操作Git 基本操作


git describe 命令用于生成一个可读的字符串,该字符串基于 Git 的标签系统来描述当前的提交。

git describe 命令命令通常用于生成版本号,帮助识别特定的提交,并能够在构建、发布或追踪特定版本时使用。

基本语法

git describe [<options>] [<commit>]
  • <commit>:指定要描述的提交。默认为当前提交。
  • <options>:用于定制输出格式或行为的选项。

常用选项和用法:

选项说明用法示例
--tags使用所有标签(包括轻量标签)来生成描述。默认情况下,git describe 只考虑注释标签。git describe --tags
--abbrev=<n>设定要显示的提交哈希的最小长度为 <n> 个字符。git describe --abbrev=8
--long强制显示长格式的描述,包括提交的哈希和距离标签的提交数。git describe --long
--exact-match仅在当前提交与标签完全匹配时返回标签名称。git describe --exact-match
--dirty如果工作目录有更改(未提交的更改),则在描述中添加 -dirty 后缀。git describe --dirty
--match=<pattern>仅使用符合指定模式的标签进行描述。git describe --match "v1.*"
--candidates=<n>限制描述所考虑的标签数量,默认为 10 个。git describe --candidates=5
--always即使没有找到标签,也会显示提交的哈希。git describe --always

常见用法

1、描述当前提交

生成基于最近标签的描述字符串:

git describe

示例输出:

v1.2-15-g2414721

这里的输出表示当前提交距离最近的标签 v1.2 有 15 次提交,并且当前提交的哈希是 2414721。

2、使用所有标签进行描述

包括所有标签(轻量标签和注释标签)来生成描述:

git describe --tags

3、显示长格式的描述

显示长格式的描述,包括哈希和距离标签的提交数:

git describe --long

4、仅在提交完全匹配标签时返回标签名称

如果当前提交与某个标签完全匹配,则仅返回标签名称:

git describe --exact-match

5、添加 -dirty 后缀

如果工作目录有未提交的更改,则在描述中添加 -dirty 后缀:

git describe --dirty

6、仅使用符合模式的标签

使用符合指定模式的标签进行描述:

git describe --match "v1.*"

7、显示提交哈希,即使没有找到标签

显示当前提交的哈希,甚至在没有标签时:

git describe --always

Git 基本操作Git 基本操作