我想列出所有本地分支(最终要删除,但为了安全起见...),这些分支仅以abc开头。问题是这种方法“有点”有效。但是如果没有分支以“abc”开头,则它会列出所有分支。这就是我不想做的事情(删除所有本地分支)。
git for-each-ref --format="%(refname:short)" refs/heads/abc\* | xargs git branch --list
列出所有以“abc”开头的分支:
git branch --list "abc*"
如果您想要删除它们,那么请运行以下命令:
git branch --list "abc*" | xargs --no-run-if-empty git branch --delete
如果你想要冒险尝试,可以在上述命令后面添加--force
标记。
如果xargs
没有输入,你只需要告诉它不要执行命令。
你可以使用-r
或--no-run-if-empty
参数来实现。
git for-each-ref --format="%(refname:short)" refs/heads/abc\* | xargs --no-run-if-empty git branch --list
| xargs git branch --list
部分。xargs
将标准输入转换为它运行的命令的命令行参数。 在这种情况下,我的观点是,for-each-ref
的输出已经是分支列表。 为什么要将其全部交给git branch
呢? (是的,仅删除单词xargs
不会产生任何有用的作用。 它将始终给您完整的列表,因为git branch
没有读取标准输入。) - Etan Reisnerxargs
的一个参数,参数要么是-r
或者是--no-run-if-empty
。 - Etan Reisner