【问题标题】:Delete all git branches which have been merged - Fatal: branch name required?删除所有已合并的 git 分支 - 致命:需要分支名称?
【发布时间】:2017-03-27 20:01:20
【问题描述】:

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

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

【问题讨论】:

  • 尝试省略| xargs git branch -d。如果这不能解释它,请尝试省略egrep,以获得更多照明。

标签: git branch git-branch pruning


【解决方案1】:

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

【讨论】:

  • 感谢在没有其他分支可删除的情况下添加!
猜你喜欢
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 2014-04-21
  • 2019-10-30
相关资源
最近更新 更多