cxw*_*cxw 2 tags git version-control full-text-search release-management
我即将发布我的第一个git-managed项目的第一个版本,并将使用带注释的标签("first alpha release")标记它.稍后,为了找出哪个是第一个alpha版本,我想搜索标签注释的内容为"first alpha".我该怎么办?
我知道git log --grep
会搜索提交消息的内容并git show
告诉我标签注释的内容,但是我无法从联机帮助页或Google中找出什么命令会对标签注释进行搜索.我是否必须转储存储标记注释的记录并使用其他工具进行搜索?我在想象git show $(git tag)|grep "first alpha"
并希望有更好的方法.
这确实使用外部grep
但似乎比解析git show的输出更优雅:
git tag -l -n | grep "first alpha"
你将得到非常好的输出:
test_1.2.3 first alpha
注意-n标志,这里我假设你的注释是一行长.对于较长的消息,您需要在-n之后给出一个数字(比如说-n99),并且对于grep标志会更复杂. https://www.kernel.org/pub/software/scm/git/docs/git-tag.html
搜索多行注释的一种方法是gawk
(显示示例bash
命令行):
git tag -l -n99 | gawk -v pat='<some regex>' -- '/^\S/ {tag=$1} $0~pat { print tag }'
Run Code Online (Sandbox Code Playgroud)
/^\S/ {tag=$1}
依次保存每个标记名称,并$0~pat { print tag }'
在找到匹配项时打印标记名称.