我试图删除所有合并的分支。我一直都在使用
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但由于某种原因它不再工作,即使我之前使用过这个命令。它返回错误"致命:所需的分支名称"
答案 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