2017-03-27 75 views
0

我试图删除我所有的合并分支。我一直使用删除所有已合并的git分支 - 致命:需要分支名称?

git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d但由于某种原因,它不会工作了,即使我以前使用过这个命令。它返回错误“致命:需要分支名称”

+0

尝试忽略'| xargs git branch -d'。如果这不能解释它,请尝试删除'egrep'以获得更多照明。 – torek

回答

4

如果在stdin上没有提供任何输入 - 例如,如果前面的管道没有输出 - xargs将运行没有参数的命令。也就是说,如果这样的:

git branch --merged | egrep -v "(^\*|master|dev)" 

不产生输出,然后xargs将运行:

git branch -d 

其中,如果你要尝试自己在命令行中,产生:

fatal: branch name required 

最简单的解决方案是将--no-run-if-empty标志添加到xargs

git branch --merged | 
egrep -v "(^\*|master|dev)" | 
xargs --no-run-if-empty git branch -d 
+0

感谢您在没有其他分支机构删除的情况下添加! – AjaxLeung