删除所有已合并的git分支-致命:需要分支名称吗?
我正在尝试删除所有合并的分支。我一直用删除所有已合并的git分支-致命:需要分支名称吗?,git,branch,git-branch,pruning,Git,Branch,Git Branch,Pruning,我正在尝试删除所有合并的分支。我一直用 git branch--merged | egrep-v“(^\*| master | dev)”| xargs git branch-d但是由于某种原因,它不再工作了,即使我以前使用过这个命令。如果在stdin上没有提供输入,它将返回错误“Fatal:branch name required”——例如,如果前面的管道没有生成输出——xargs将在没有参数的情况下运行您的命令。也就是说,如果: git branch --merged | egrep -v
git branch--merged | egrep-v“(^\*| master | dev)”| xargs git branch-d
但是由于某种原因,它不再工作了,即使我以前使用过这个命令。如果在stdin
上没有提供输入,它将返回错误“Fatal:branch name required”——例如,如果前面的管道没有生成输出——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
尝试省去
| xargs git分支-d
。如果这还不能解释,请尝试省去egrep
,以获得更多说明。感谢您在没有其他分支可删除的情况下添加!