为什么 git-log with perl regex negative lookbehind 导致致命错误?

Why is git-log with perl regex negative lookbehind causing a fatal error?

要么我无法获得 git-log 的正则表达式 grep 功能以使用基于 perl 的正则表达式 (pcre) 进行搜索,要么我可以但它不适用于负向后视。

git log -p -P -G'(?<!-)title'

输出结果

fatal: invalid regex: Invalid preceding regular expression

但是,如果 git-grep 是任何指标,pcre 支持和负面回顾似乎在起作用。 例如。 git grep -P '(?<!-)title' returns 预期结果。

git 版本 2.21.0 (Apple Git-122.2)

-P 不影响 -G。您可以通过将 -P 替换为 -F(或 --fixed-string)来验证它:您仍然会遇到相同的错误,即使在固定字符串中根本没有环视。

-P 的文档说

Consider the limiting patterns to be Perl-compatible regular expressions.

注意单词 "patterns"。事实上,--grep 选项提到了它:

--grep=<pattern>

另一方面,-G 没有:

-G<regex>