【问题标题】:List all git local branches that start with string列出所有以字符串开头的 git 本地分支
【发布时间】:2015-08-09 22:27:42
【问题描述】:

我想列出所有仅以 abc 开头的本地分支(最终删除,但为了安全起见...)。问题是这种有效。但是,如果没有分支以“abc”开头,那么它会列出 ALL 的分支。这是我不想最终做的事情(删除我所有的本地分支机构)

git for-each-ref --format="%(refname:short)" refs/heads/abc\* | xargs git branch --list

【问题讨论】:

  • 你为什么在这里使用xargsfor-each-ref 的输出不是你想要的吗?
  • 老实说,我不确定 xargs 是做什么的。删除它有帮助吗?
  • 实际上删除它使它根本不起作用
  • 我的意思是完全删除整个| xargs git branch --list 位。 xargs 将标准输入转换为它运行的命令的命令行参数。在这种情况下,我的观点是for-each-ref 的输出已经 是分支列表。你为什么要把它交给git branch? (是的,只删除单词 xargs 不会做任何有用的事情。它总是会给你完整的列表,因为 git branch 没有读取标准输入。)
  • gotchya,但现在我想删除它们而不是仅仅列出它们

标签: bash shell unix git-bash


【解决方案1】:

列出所有以“abc”开头的分支:

git branch --list "abc*"

因此,如果您想删除它们,请运行以下命令:

git branch --list "abc*" | xargs --no-run-if-empty git branch --delete

如果您想危险地生活,可以将--force 标志附加到上面的命令中。

【讨论】:

    【解决方案2】:

    如果没有输入,你只需要告诉xargs不要执行它的命令。

    您可以使用 -r--no-run-if-empty 参数来做到这一点。

    git for-each-ref --format="%(refname:short)" refs/heads/abc\* | xargs --no-run-if-empty git branch --list
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      • 2019-01-12
      • 2012-05-23
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      相关资源
      最近更新 更多