Last active
May 19, 2016 08:34
-
-
Save tonioriol/9dd4f31a29a851f687db to your computer and use it in GitHub Desktop.
git cleanup merged branches
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################################ | |
# DELETE ALL BRANCHES THAT ALREADY ARE MERGED INTO MASTER (except develop) # | |
############################################################################ | |
# @source: http://stackoverflow.com/a/18143078/1126075 | |
# 1. checkout | |
git checkout master | |
# 2. echo all remote branches merged into origin/master except origin/master and origin/develop | |
git branch -r --merged | grep -v master | grep -v develop | sed 's/origin\///' | xargs -n 1 echo | |
# Ask if | |
echo -n "Do you want to delete all this merged branches (y/n)? " | |
read answer | |
if echo "$answer" | grep -iq "^y" ;then | |
# 3. DELETE all remote branches merged into origin/master except self(origin/master) and origin/develop | |
git branch -r --merged | grep -v master | grep -v develop | sed 's/origin\///' | xargs -n 1 git push --delete origin | |
# 4. prune the remote deleted branches from local too | |
git remote prune origin | |
echo "All branches has been deleted" | |
else | |
echo "Cancelled." | |
fi | |
############# | |
# ONE LINER # | |
############# | |
# local | |
# print merged local branches | |
git branch --merged | grep -v '\*\|master\|develop' | xargs -n 1 echo | |
# delete local branches | |
git branch --merged | grep -v '\*\|master\|develop' | xargs -n 1 git branch -d | |
#remote | |
# print merged remote branches | |
git branch -r --merged | grep -v '\*\|master\|develop' | sed 's/origin\///' | xargs -n 1 echo | |
# delete remote branches | |
git branch -r --merged | grep -v '\*\|master\|develop' | sed 's/origin\///' | xargs -n 1 git push --delete origin |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment