【问题标题】:How to delete branches in specific folder?如何删除特定文件夹中的分支?
【发布时间】:2022-08-17 21:12:27
【问题描述】:

我有一些文件夹,如 feature 和 fix 等。我想在本地删除有关此分支的所有信息,因为它们已经合并,我不想在调用 \"git branch\" 或 \"git branch 时看到它们-r\",所以标题中的问题

  • git branch -d <branchname> 删除一个分支。这是否回答你的问题?
  • 分支不在文件夹中。如果您的意思是您有br/anchbr/anch2br/anch3 等,并且想要删除所有br/* 分支:您必须一一进行(好吧,从技术上讲,您可以生成完整的列表和用列表运行一个git branch -d,但无论如何它都是同一类的东西)。这些名称类似于文件夹(并且具有与文件夹相同的限制),但实际上并不是文件夹。
  • 为了补充@torek所说的,分支名称中的正斜杠\'/\'只是分支名称的一个字符。它本身并不将分支组合在一起,这完全取决于您对名称的解释。
  • git branch -d <Alt-*> 可能会起作用,具体取决于您的外壳。

标签: git


【解决方案1】:

TL;博士

这应该可以解决问题。

git branch -d $(git branch | grep "^  fix/")

解释

这样做的想法是为git branch -d(删除分支)提供所有有趣分支的列表,即所有以"fix/"开头的分支。

此列表由git branch | grep "^ fix/" 生成。
该命令由两部分组成:

  1. git branch:列出所有本地分支(在单独的行上)。
  2. grep " fix/":只传递以" fix/" 开头的行。

    通过cmd1 $(cmd2) 执行带有多行输出的命令cmd2 会导致前面的命令cmd1 每行执行一次。因此,所有匹配的分支都将被删除。

    您当然可以将“fix/”替换为“feature/”或其他任何内容。


    注意:行首的两个空格非常重要,要匹配。当前签出的分支以* 开头列出。星号 (*) 尝试匹配文件夹中的所有文件,导致 git 尝试删除当前目录中所有命名为类似文件的分支。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2021-12-22
    • 2013-03-20
    • 2011-03-04
    • 2012-12-15
    相关资源
    最近更新 更多