git - git中如何搜索标签注释的内容?

标签 git version-control tags full-text-search release-management

我即将发布我的第一个 git 管理项目的第一个版本,并将使用带注释的标签(“第一个 alpha 版本”)对其进行标记。后来,为了找出第一个 alpha 版本,我想在标签注释的内容中搜索“first alpha”。我该怎么做?

我知道 git log --grep 会搜索提交消息的内容,git show 会告诉我标签注释的内容,但我想不通从联机帮助页或谷歌中取出什么命令将搜索标签注释。我是否必须转储存储标签注释的记录并使用其他工具进行搜索?我正在设想 git show $(git tag)|grep "first alpha" 并希望有更好的方法。

最佳答案

这确实使用了外部 grep 但似乎比解析 git show 的输出更优雅:

git 标签 -l -n | grep “第一个 alpha”

你会得到很好的输出: test_1.2.3 第一个 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 }'

/^\S/{tag=$1}依次保存每个标签名,$0~pat {print tag}'匹配时打印标签名找到了。

关于git - git中如何搜索标签注释的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31565447/

相关文章:

html - 嵌套标签的正则表达式(最里面使其更容易)

database - 如果与不同的实体共享标签,如何实现标签?

linux - 如何在 openBSD 上使用 git 设置自动完成?

git - 传递 git diff 的凭据

apache - 在我的 GoDaddy CentOS 专用服务器上安装 Subversion 后,如何配置和访问我的 Subversion 存储库

git - 何时在 git-flow 开发中进行 QA

xml - 如何更改 XML 以使用空元素标记?

git - 无法通过 SSH 克隆

git - 列出在 Travis 中的 pull 请求中修改的文件

Grails plugin.xml - 存储在版本控制中?