3

我正在尝试删除所有合并的分支。我一直用

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

4

1 回答 1

13

如果没有提供输入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
于 2017-03-27T20:15:37.877 回答