删除已合并的所有git分支 - 致命:需要分支名称?

时间:2017-03-27 20:01:21

标签: git branch git-branch pruning

我试图删除所有合并的分支。我一直都在使用

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

1 个答案:

答案 0 :(得分:6)

如果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