How can I delete branches in git starting with the letter 'o'?
Suppose, I have a list of branches like the following:
origin_alpha
origin_beta
origin_gamma
alpha
beta
gamma
I wan't to delete the branches origin_alpha, origin_beta and origin_gamma.
Update: The -r
option to xargs
is a GNU addon. Unless you use xargs
from GNU findutils it might not work. You can omit it but that leads to an error if the input piped to xargs is empty.
You can use git branch --list <pattern>
and pipe it's output to xargs git branch -d
:
git branch --list 'o*' | xargs -r git branch -d
Btw, there is a minor issue with the code above. If you've currently checked out one of the branches that begins with o
the output of git branch --list 'o*'
would look like this:
* origin_master
origin_test
o_what_a_branch
Note the asterisk *
in front of the current branch name.
While you cannot delete the current branch anyway, it leads to the fact that xargs also passes *
to git branch delete
.
As I say it is just a cosmetic error, but if you want to avoid it use:
git branch --list 'o*' | sed 's/^* //' | xargs -r git branch -d