Git grep-v命令是什么\*&引用;做

Git grep-v命令是什么\*&引用;做,git,git-bash,atlassian-sourcetree,Git,Git Bash,Atlassian Sourcetree,不久前,我用在网上找到的一个命令删除了我的本地分支,但是当我分析它时,我不确定grep-v“\*”在命令行中做了什么,我删除了它,并且仍然在做同样的事情(或者至少我认为是这样)。我在网上找不到关于它的任何信息。另外,我还发现了一个变体,它就是grep-v“*”。搜索名为“*”的分支没有意义,因为不可能这样调用它(至少在sourcetree上) 这是我一直在使用的命令 git branch --merged | grep -v "\*" | grep -v master | grep -v dev

不久前,我用在网上找到的一个命令删除了我的本地分支,但是当我分析它时,我不确定grep-v“\*”在命令行中做了什么,我删除了它,并且仍然在做同样的事情(或者至少我认为是这样)。我在网上找不到关于它的任何信息。另外,我还发现了一个变体,它就是grep-v“*”。搜索名为“*”的分支没有意义,因为不可能这样调用它(至少在sourcetree上)

这是我一直在使用的命令

git branch --merged | grep -v "\*" | grep -v master | grep -v develop | xargs -n 1 git branch -d

有人能告诉我它是重要的还是我可以从命令行中删除它吗?

它过滤输入,留下所有不包含星号的行

man grep

-v、 --反向匹配 反转匹配的意义,以选择不匹配的线。(-v由POSIX指定。)

\*
是一种与星号匹配的模式。由于
-v
标志,这些行将从输出中删除


在此上下文中,
grep
命令将过滤
git branch--merged
的输出。 后者输出分支列表,其中当前分支用星号标记
grep-v“\*”
只是从输出中删除当前分支

最后,整个命令将删除所有合并的分支,除了
master
develope
和当前分支。 如果您省略了第一个
grep
,该命令将尝试删除当前签出的分支,这将导致错误。

git分支--merged
列出合并到
头部的分支。下面是一个例子:

$ git branch --merged
  master
* test
“*”是输出的一部分,为了排除此结果,您可以使用
-v
选项将其反转:

echo "* master" | grep -v "\*"
网络可以打印任何东西

接下来使用
grep-v
的管道会排除更多包含一些关键字的结果,最后这些分支会被删除


总之,该命令删除合并的分支,同时保留主分支和当前分支(旁边有“*”的分支)。

如果我不使用\,它仍然会从输出中删除当前分支
grep-v“*”
@rampar是的,我认为``在这里是可选的。