Git 查找标记名与模式匹配的第一个提交
我试图找到第一个具有特定表达式的标记(例如,以“v”开头),并获得该表达式。我们从某个提交开始,然后返回到时间,以找到与该表达式对应的第一个标记 像这样:Git 查找标记名与模式匹配的第一个提交,git,Git,我试图找到第一个具有特定表达式的标记(例如,以“v”开头),并获得该表达式。我们从某个提交开始,然后返回到时间,以找到与该表达式对应的第一个标记 像这样: (v1.0.3) (fix) (START)(HEAD) 1 --- 2 --- 3 --- 4 ---5 --- 6 --- 7 v1.0.3是一个标签 fix是一个标签 开始是我们开始搜索的提交 这将返回4,因为v1.0.3的开始是4次提交 我发现了一些类似的资源: 第一个对我不起作用,因为它需要在WIND
(v1.0.3) (fix) (START)(HEAD)
1 --- 2 --- 3 --- 4 ---5 --- 6 --- 7
- v1.0.3是一个标签
- fix是一个标签
- 开始是我们开始搜索的提交
git log
上的--tags=
选项。从手册页:
--tags[=<pattern>]
Pretend as if all the refs in refs/tags are listed on the command
line as <commit>. If <pattern> is given, limit tags to ones
matching given shell glob. If pattern lacks ?, *, or [, /* at the
end is implied.
--标记[=]
假装命令中列出了参照/标记中的所有参照
行as。如果给定,则将标记限制为1
匹配给定的shell glob。如果图案在底部缺少?、*、或[、/*
这意味着结束。
要查找以
v
开头的所有内容,您可以使用git log--tags=v*
(或者省略星号,因为它是隐含的)您所描述的内容看起来非常像“git descripe”:
“66”是指与模式匹配的最新标记后的提交次数。所说的“第一”,是指最接近开始的次数吗?@max630是,时间从6开始追溯到2(v1.0.3)我已经读到使用
log
查找提交是不好的,应该使用rev list
来查找提交。如果我错了,请纠正我的错误?这也导致了0个结果。@max630的答案解决了我的问题很高兴听到这个消息!我很想知道不使用log查找提交的来源:)
$ git describe --tags --match 'v*'
v2.16.1.windows.1-66-g72409919f5