我试图删除我所有的合并分支。我一直使用删除所有已合并的git分支 - 致命:需要分支名称?
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但由于某种原因,它不会工作了,即使我以前使用过这个命令。它返回错误“致命:需要分支名称”
我试图删除我所有的合并分支。我一直使用删除所有已合并的git分支 - 致命:需要分支名称?
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
但由于某种原因,它不会工作了,即使我以前使用过这个命令。它返回错误“致命:需要分支名称”
如果在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
感谢您在没有其他分支机构删除的情况下添加! – AjaxLeung
尝试忽略'| xargs git branch -d'。如果这不能解释它,请尝试删除'egrep'以获得更多照明。 – torek