我想清理我的本地存储库,它有大量的旧分支:例如3.2、3.2.1、3.2.2等。
我希望有个鬼鬼祟祟的办法能一次性把他们干掉。因为它们大多遵循点释放约定,我想也许有一个捷径可以说:
git branch -D 3.2.*
并杀死所有3.2。x分支。
我尝试了这个命令,当然,它不起作用。
我想清理我的本地存储库,它有大量的旧分支:例如3.2、3.2.1、3.2.2等。
我希望有个鬼鬼祟祟的办法能一次性把他们干掉。因为它们大多遵循点释放约定,我想也许有一个捷径可以说:
git branch -D 3.2.*
并杀死所有3.2。x分支。
我尝试了这个命令,当然,它不起作用。
当前回答
因为在Git中,所有的分支都没有引用到Git repo,为什么不删除指向. Git /ref的分支,然后如果有任何在存储库中不感兴趣的东西被遗漏了,就会自动被垃圾收集,所以你不需要麻烦。
其他回答
不是那种语法。但你可以这样做:
git branch -D 3.2 3.2.1 3.2.2
基本上,git分支会通过一次调用为你删除多个分支。不幸的是,它不做分支名称补全。不过,在bash中,你可以这样做:
git branch -D `git branch | grep -E '^3\.2\..*'`
因为在Git中,所有的分支都没有引用到Git repo,为什么不删除指向. Git /ref的分支,然后如果有任何在存储库中不感兴趣的东西被遗漏了,就会自动被垃圾收集,所以你不需要麻烦。
对于使用PowerShell的纯灵魂,这里有一个小脚本 Git branch -d $(Git branch——list '3.2.;*' | %{$_.Trim()})
git branch -D <branchName>
也许你会发现这很有用:
如果你想删除所有不是'master', 'foo'和'bar'的分支
git branch -D `git branch | grep -vE 'master|foo|bar'`
Grep -v 'something'是一个带有反转的匹配器。