如何使用命令行搜索提交消息? [复制]

Posted

技术标签:

【中文标题】如何使用命令行搜索提交消息? [复制]【英文标题】:How to search in commit messages using command line? [duplicate] 【发布时间】:2011-04-19 02:40:23 【问题描述】:

可能重复:How to search through all commits in the repository?

有没有办法使用命令行搜索提交标头?

【问题讨论】:

这不是真正的重复,另一个问题是关于悬空提交,而 这个不是。投票重新开放。 啊。但这是this one 的副本。虽然这是较旧的问题,但较新的问题有更好的答案恕我直言。我希望我可以撤销我的投票以重新开放。 不要忘记使用--all 搜索非祖先提交: 【参考方案1】:
git log --grep=<pattern>
    Limit the commits output to ones with log message that matches the 
    specified pattern (regular expression).

--git help log

【讨论】:

我认为这个答案部分错误,因为 --grep 选项搜索整个提交消息,而不仅仅是标题。在这种情况下,@czchen 的回答更正确。 除了 czchen 的答案需要使用外部 grep 实用程序这一事实之外 感谢这对我帮助很大,在此之前我使用了 ack-grep。 这并没有具体回答 OP 关于标头的问题,但它确实回答了我关于提交消息的一般问题 - 不仅是我的,因为它是谷歌中“git search commit messages”的#1链接跨度> 可能还值得一提的是,这只会搜索您的 本地 存储库。【参考方案2】:
git log --oneline | grep PATTERN

【讨论】:

这应该是公认的答案! 这不会错过提交消息中除第一行之外的 PATTERN 提交吗? 需要 grep 可用,即这是一个 linux / git bash 特定的解决方案(除非你在 windows 上安装了 grep) @Armand 哈哈,是的,很抱歉,我的评论应该是“不会在 Windows 上工作” 如果您使用的是 Windows 或其他环境。没有grep,结合两个答案:git log --oneline --grep=PATTERN

以上是关于如何使用命令行搜索提交消息? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

通过命令行在 Git 提交消息中使用感叹号

如何使用“$ git commit”在消息开头引用问题(gitlab,github)? [复制]

如何使用正则表达式搜索 Git 提交消息并将这些消息及其行号输出到文本文件

如何在 git 中编辑任何提交的提交消息? [复制]

如何在 Mercurial 中编辑不正确的提交消息? [复制]

如何在 GitHub 上搜索提交消息?