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