我在项目中有以下代码:
someMethodCall();
anotherMethodCall(); //new string
我想查找日志,其中包含两个srings,带有-S
参数。
我试过了:
git log -S'someMethodCall();anotherMethodCall()'
git log -S'someMethodCall();%nanotherMethodCall()'
git log -S'someMethodCall();\r\nanotherMethodCall()'
git log -S'someMethodCall();\nanotherMethodCall()'
......但没有成功。
答案 0 :(得分:1)
git log -S (or -G)
不支持像--and
这样的git grep
指令:请参阅“Fun with "git log --grep"”(这是一个类似的问题)
“
git log --grep
”是面向行的 这部分是“git log
”系列不支持--and
选项的原因。and
语义在“git log
”命令的上下文中不是很有用,即使我们将讨论限制在消息部分也是如此
OP Boolean_Type建议in the comments添加--pickaxe-regex
option:
将
<string>
作为扩展POSIX正则表达式的-S
视为匹配。
git log -S'(anotherMethodCall\(\);)|(someMethodCall\(\);)' --pickaxe-regex
注意:如果在Windows CMD中完成,请使用双引号:
git log -S"(anotherMethodCall\(\);)|(someMethodCall\(\);)" --pickaxe-regex
从那里,git show
可以突出显示添加或删除的行。