Skip to content

Instantly share code, notes, and snippets.

@fbn4sc
Created January 29, 2018 01:35
Show Gist options
  • Star 53 You must be signed in to star a gist
  • Fork 16 You must be signed in to fork a gist
  • Save fbn4sc/7d7bec5a3b4b04b6279cee89cf17fdd2 to your computer and use it in GitHub Desktop.
Save fbn4sc/7d7bec5a3b4b04b6279cee89cf17fdd2 to your computer and use it in GitHub Desktop.
Delete all branches except master and develop.
git branch | grep -v "master\|develop" | xargs git branch -D
@vicradon
Copy link

Branch name required was returned as an error.

@khaledannajar
Copy link

khaledannajar commented Aug 31, 2020

It worked fine. A note: the current branch was not deleted, so in case you are on a branch other than develop or on master it won't be deleted

@ohmydevops
Copy link

for remote branches:

git branch | grep -v "master\|development" | xargs git push origin --delete

@OlivierJM
Copy link

This worked just fine for me, thanks a lot.

@nimi0112
Copy link

I have made an alias for this

alias delo='git branch | grep -v "develop" | xargs git branch -D'

I just type delo and this command gets executed.

delo means delete others 😛

@kujiy
Copy link

kujiy commented Sep 29, 2021

thanks!

@b-insh
Copy link

b-insh commented Mar 30, 2022

thank you!

@a2f0
Copy link

a2f0 commented Jun 8, 2022

Delete everything but the current

git branch | grep -v `git branch --show-current` | xargs git branch -D

@mmaazm
Copy link

mmaazm commented Jun 28, 2023

This command will delete the branch locally as well as remotely!
RUN WITH CAUTION

git branch -r | grep -Ev 'main|develop' | awk -F/ '/^  origin/ {print $2}' | xargs -I {} git push origin --delete {}

Result
It will print the following as the branch gets deleted.

To https://github.com/YourUserName/repository-name.git
 - [deleted]         email-config

@jtors
Copy link

jtors commented Mar 18, 2024

I want to pass an argument. How can I do it?

What I want to do is something like this.

#on alias
delo=git branch | grep -v "$variable here" | xargs git branch -D
#then all of the branch except branch-one will be removed/deleted.
~/project-one(branch) $ delo branch-one 

@nimi0112
Copy link

@jtors , you can do it like this

function delo() { git branch | grep -v "$1" | xargs git branch -D ;}

# use it as
delo "branchName"

@jtors
Copy link

jtors commented Mar 18, 2024

Hi @nimi0112 thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment