如何搜索整个代码块

Gqq*_*big 5 git

我的文件有

.settings {
}


.field {
    margin-bottom: 1em;
}
Run Code Online (Sandbox Code Playgroud)

我想知道什么时候

.settings {
}
Run Code Online (Sandbox Code Playgroud)

成立了.

我知道如果我想搜索一行代码,我会这样做git log -S".settings {".

但在这里我想搜索

.settings {
}
Run Code Online (Sandbox Code Playgroud)

作为一个整体,我试过了

git log -S".settings {\r}" confirm.less.css
git log -S".settings {\n}" confirm.less.css
git log -S".settings {\r\n}" confirm.less.css
Run Code Online (Sandbox Code Playgroud)

但所有人都没有后退.

如何搜索包含新行字符的整个代码块

F. *_*ani 1

要使其正常工作存在一些问题。

首先,我认为您需要{ }通过转义正则表达式中的元字符来处理它们,并启用--pickaxe-regex. 我还使用了一个简单的方法\s*来贪婪地匹配任何空格,包括括号之间的换行符。

这是我想出的结果命令

git log -S".settings \{\s*\}" --pickaxe-regex confirm.less.css

它返回包含第一次出现的提交。