我想删除所有已经合并的分支。我一直使用如下命令:
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但是不知道为什么现在无法正常工作,即使之前也是能够使用这个命令的。它会返回错误信息:"Fatal: branch name required"。
我想删除所有已经合并的分支。我一直使用如下命令:
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但是不知道为什么现在无法正常工作,即使之前也是能够使用这个命令的。它会返回错误信息:"Fatal: branch name required"。
如果没有在标准输入(stdin
)中提供任何输入,例如,如果前面的管道没有产生任何输出,则xargs
将以无参数的方式运行您的命令。也就是说,如果是这样:
git branch --merged | egrep -v "(^\*|master|dev)"
不会产生输出,然后xargs
将运行:
git branch -d
如果您在命令行上尝试,会产生以下结果:
fatal: branch name required
最简单的解决方案是在xargs
命令中添加--no-run-if-empty
标志:git branch --merged |
egrep -v "(^\*|master|dev)" |
xargs --no-run-if-empty git branch -d
| xargs git branch -d
。如果这样仍无法理解,请尝试同时省略egrep
以获得更多的启示。 - torek