Regex 如何在GIT reflog中使用--grep中的正则表达式?

Regex 如何在GIT reflog中使用--grep中的正则表达式?,regex,git,grep,Regex,Git,Grep,假设我正在尝试查找以某些指定分支名称(Feature-123、Feature-126和Feature-159)为前缀的任何提交的提交引用。为什么下面的GIT命令不起作用 GIT reflog--grep'Feature-1(59|2(3|6))” 但如果没有REGEX,这3个单独的命令可以正常工作(返回结果) 尽管代表全局正则表达式打印,--grep是否在此上下文中不支持REGEX?您需要转义特殊字符 git reflog--grep'Feature-1\(23\|26\|59\)git ref

假设我正在尝试查找以某些指定分支名称(
Feature-123
Feature-126
Feature-159
)为前缀的任何提交的提交引用。为什么下面的GIT命令不起作用

GIT reflog--grep'Feature-1(59|2(3|6))”

但如果没有REGEX,这3个单独的命令可以正常工作(返回结果)


尽管代表全局正则表达式打印,
--grep
是否在此上下文中不支持REGEX?

您需要转义特殊字符


git reflog--grep'Feature-1\(23\|26\|59\)
git reflog--grep'Feature-1\(23\|26\|59\)
@Encrypted西瓜啊,你明白了!把它作为答案贴出来,我会接受的。在GREP中是否必须像这样转义所有正则表达式语法?在git GREP中,您需要转义特殊字符。如果你用正常的grep来做这件事,它们是不必要的<代码>git reflog | grep-E | Feature-1(23 | 26 | 59)。
-E
告诉grep这是一个正则表达式。@在
grep
和no之前,用
-E
加密西瓜一开始让我有点不舒服。我猜它将
reflog
的输出通过管道传输到
grep
中,而不是作为同一个命令的一部分。这是正确的。
reflog
的输出通过管道传输到
grep
命令中。它不是转义,而是一种不同的语法。是的<默认情况下,code>git greplike
grep
使用基本语法。可以将其更改为扩展语法with、固定字符串with
-F
和perl-like with
-P
GIT reflog --grep 'Feature-123'
GIT reflog --grep 'Feature-126'
GIT reflog --grep 'Feature-159'