Skip to content

Instantly share code, notes, and snippets.

@artefactop
Last active February 16, 2022 11:11
Show Gist options
  • Save artefactop/9832f426480822c290d3 to your computer and use it in GitHub Desktop.
Save artefactop/9832f426480822c290d3 to your computer and use it in GitHub Desktop.
git tips
# Delete remote branches already merged with development
git branch -a --merged | grep -v "\*" | grep -v master | grep -v main | grep -v develop | cut -d'/' -f 3-4 | xargs -n 1 -I {} git push origin :{}
# Delete local merged branches
git branch --merged | grep -v "\*" | grep -v master | grep -v main | grep -v dev | xargs -n 1 -I {} git branch -d {}
# Delete local squashed branches DANGEROUS https://github.com/not-an-aardvark/git-delete-squashed
git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch; do mergeBase=$(git merge-base master $branch) && [[ $(git cherry master $(git commit-tree $(git rev-parse $branch\^{tree}) -p $mergeBase -m _)) == "-"* ]] && git branch -D $branch; done
@fnavalca
Copy link

For local branches:

git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d

@artefactop
Copy link
Author

Merci @fnavalca

@fnavalca
Copy link

fnavalca commented Feb 7, 2017

Te lo mejoro @artefactop:

git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 -I {} git branch -d {}

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