我想清理我的本地存储库,它有大量的旧分支:例如3.2、3.2.1、3.2.2等。

我希望有个鬼鬼祟祟的办法能一次性把他们干掉。因为它们大多遵循点释放约定,我想也许有一个捷径可以说:

git branch -D 3.2.*

并杀死所有3.2。x分支。

我尝试了这个命令,当然,它不起作用。


当前回答

也许你会发现这很有用:

如果你想删除所有不是'master', 'foo'和'bar'的分支

git branch -D `git branch | grep -vE 'master|foo|bar'`

Grep -v 'something'是一个带有反转的匹配器。

其他回答

要根据指定的模式删除多个分支,请执行以下操作:

打开终端或同等工具,输入以下命令:

git branch | grep "<pattern>" (preview of the branches based on pattern)

git branch | grep "<pattern>" | xargs git branch -D (replace the <pattern> with a regular expression to match your branch names)

删除所有3.2。X个分支,你需要输入

git branch | grep "3.2" | xargs git branch -D

这是所有!

你可以开始了!

我今天刚刚清理了一大批过时的本地/远程分支机构。

以下是我的做法:

1. 列出所有分支名称到一个文本文件:

git branch -a >> BranchNames.txt

2. 附加我想删除的分支到命令"git branch -D -r":

git branch -D -r origin/dirA/branch01 origin/dirB/branch02 origin/dirC/branch03(…附加任何分支名称)

3.执行CMD命令

这一个比“git push origin -delete”工作得更快更可靠。

这可能不是其他答案中列出的最聪明的方法,但这个方法非常直接,而且易于使用。

你可以使用这个命令:git branch -D $(printf "%s\n" $(git branch) | grep '3.2')

保持“开发”,并删除所有其他在本地

    git branch | grep -v "develop" | xargs git branch -D 

这对我来说是正确的:

git branch | xargs git branch -d

git branch | xargs git branch -D

删除所有本地分支