如何使用命令行搜索提交消息? [复制]
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 commit”在消息开头引用问题(gitlab,github)? [复制]
如何使用正则表达式搜索 Git 提交消息并将这些消息及其行号输出到文本文件