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

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

git branch -D 3.2.*

并杀死所有3.2。x分支。

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


当前回答

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

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

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

这是所有!

你可以开始了!

其他回答

如果你在windows上,你可以使用powershell来做这个:

 git branch | grep 'feature/*' |% { git branch -D $_.trim() }

用你喜欢的图案替换feature/*。

如果你正在使用Fish shell,你可以利用字符串函数:

git branch -d (git branch -l "<your pattern>" | string trim)

这与其他一些答案中的Powershell选项没有太大区别。

这对我来说是正确的:

git branch | xargs git branch -d

git branch | xargs git branch -D

删除所有本地分支

使用以下命令删除所有分支(签出的分支不会被删除)。

git branch | cut -d '*' -f 1 | tr -d " \t\r" | xargs git branch -d

编辑:我用的是Mac Os

如果你不局限于使用git命令提示符,那么你总是可以运行git gui并使用Branch->Delete菜单项。选择所有你想删除的分支,让它撕裂。