3

如何过滤不包含特定单词的提交的 git 日志?

我查看了正则表达式站点,并在 Git Bash 中尝试了一些没有成功的案例。

4

3 回答 3

4

您可以git log --grep="<your string>"--invert-grep参数结合使用来反转搜索条件(从 Git for Windows 2.6.2 开始)。

例子:

查找提交消息包含字符串的提交foo

git log --grep="foo"

查找提交消息不包含字符串的提交foo

git log --invert-grep --grep="foo"

于 2015-11-04T16:02:03.047 回答
1

正如克劳迪乌所说

一般来说,编写一个不包含特定字符串的正则表达式是很痛苦的。我们必须为计算模型执行此操作 - 您采用 NFA,它很容易定义,然后将其简化为正则表达式。不包含“猫”的事物的表达式大约有 80 个字符长。

你可以用相反的方式来做,不是优雅,而是工作方式

git log ... | grep -v "someword"

PS - RE 中的否定是 ^ 前缀,它(前缀用法)可能需要 -E(扩展正则表达式) for git log,但是将否定词定义为正则表达式的 只是真正的噩梦

于 2012-11-29T12:41:44.310 回答
0

您只能通过这种方式搜索提交消息,这是通过使用-m签入中的标志提交代码来完成的。例子:

commit -m "message describing awesome code changes"

这会将消息保存"message describing awesome code changes"在日志中,这意味着搜索单词awesome,例如,现在将返回它作为结果。

您正在搜索的短语/单词/消息是否可能从未包含在提交消息中?

于 2012-11-28T21:34:40.853 回答