我正在尝试找到具有特定表达式的第一个标记(例如,以“v”开头)并获取该提交SHA。我们从某个提交开始,然后回过头来找到与该表达式对应的第一个标记。
像这样:
(v1.0.3) (fix) (START)(HEAD)
1 --- 2 --- 3 --- 4 ---5 --- 6 --- 7
这将返回4,因为START到v1.0.3是4次提交。
我找到了一些这样的资源:
https://atech-mobile.com/blog/git-how-count-commits
How to show git commit using number of commits since a tag
第一个对我没有用,因为这需要在WINDOWS上运行,而第二个我没有开始工作。 (这是漫长的一天,我无法解释原因)。
希望这可以确保问题不会被标记为重复。
它必须在Windows上运行,因此首选在Windows上运行的答案。
答案 0 :(得分:1)
你在描述什么看起来非常像“git describe”:
$ git describe --tags --match 'v*'
v2.16.1.windows.1-66-g72409919f5
“66”只有最新标记与模式匹配后的提交次数。
答案 1 :(得分:0)
您可以使用--tags=
上的git log
选项。从手册页:
--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.
要找到以v
开头的所有内容,您可以使用git log --tags=v*
(或省略星号,因为它会被暗示)