主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

git describe 命令

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

示例输出:

v1.3-beta-8-gf3c7e92
  • 包含轻量标签 v1.3-beta,距离该标签有 8 次提交,当前哈希为 f3c7e92

3. 显示长格式的描述

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

git describe --long

示例输出:

v1.2-15-g2414721-dirty
  • 长格式强制显示完整信息:标签 + 提交距离 + 哈希 + 工作区状态

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

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

git describe --exact-match

示例输出(当提交恰好有标签时):

v1.2

示例输出(当提交没有精确匹配的标签时):

fatal: no tag exactly matches '2414721abcdef'

5. 添加 -dirty 后缀

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

git describe --dirty

示例输出(工作区有未提交更改时):

v1.2-15-g2414721-dirty

示例输出(工作区干净时):

v1.2-15-g2414721

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

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

git describe --match "v1.*"

示例输出:

v1.2-15-g2414721

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

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

git describe --always

示例输出(当仓库没有任何标签时):

2414721

示例输出(当存在标签时,行为与普通git describe一致):

v1.2-15-g2414721

Git 基本操作



评论区 0
发表评论