为什么这个用于查找远程分支的 git 别名不起作用?

Why doesn't this git alias to find remote branches work?

我在 Windows 命令提示符(不要判断)。

我有这个命令:

git remote show origin | grep \w*\s*(new^|tracked) -E

这工作正常,打印出我期望的内容:

    dev                                  tracked
    master                               tracked
    my-account                           tracked
    payment-request                      tracked

我尝试将其添加为别名:

git config --global alias.branches "!git remote show origin | grep \w*\s*(new^|tracked) -E"

我的配置文件如下所示:

alias.branches=!git remote show origin | grep \w*\s*(new^|tracked) -E

但是当我运行它时:

>git branches

git remote show origin | grep \w*\s*(new^|tracked) -E: -c: line 0: syntax error near unexpected token `('
git remote show origin | grep \w*\s*(new^|tracked) -E: -c: line 0: `git remote show origin | grep \w*\s*(new^|tracked) -E'

我不明白为什么会出现此语法错误,而当我手动 运行 命令时它工作得很好。为什么会出现此错误,我该如何解决?

你试过吗

git remote show origin | grep \w*\s*'(new^|tracked)' -E

在你的别名中,在 linux 我在 运行 你的命令时遇到同样的错误,当我添加 '