git-diff 刚好超过匹配正则表达式的帅哥

git-diff just over hunks matching regexp

git diff 是否有任何选项允许只考虑符合某些特定条件(例如正则表达式)的帅哥?

我希望 diff 只向我展示帅哥,例如,以匹配正则表达式 .*<<<special_diff.* 的行开始并以匹配正则表达式 .*\sspecial_diff>>>

的行结束

我正在寻找能够做到这一点的解决方案,保持快速的性能并保持简单。

注意:它应该能够匹配多行,这样我就可以匹配(成块)特定分隔符之间的多行文本块。

仅当一个大块包含一个完整的块(打开+关闭分隔符)时才匹配;例如匹配由 <body></body>.

分隔的多行块

使用 git diff -Gregexp. Example: the commit 5c6d3a9@mimedecode 包含 3 个帅哥。如果我 运行 git diff 5c6d3a9~ 5c6d3a9 我看到所有 3.

我可以使用 git diff -GReplaced 5c6d3a9~ 5c6d3a9 过滤它们,但我只看到这 3 个帅哥中的 2 个。使用 git diff -Greplaced 5c6d3a9~ 5c6d3a9 时不会显示任何内容,因为默认情况下正则表达式搜索是 case-sensitive。要使其 case-insensitive 添加 -i: git diff -Greplaced -i 5c6d3a9~ 5c6d3a9;这又产生了 2 个帅哥。