When I worked with a lot of features at the same time, it was really common to create a bunch of branches locally.
I felt really annoyed when I run git branch
locally... It gives me a ton of legacy branches... This is super annoying especially when I use the tab-complete function.
When I searched for the way to clean up my local environment, it is common that the community will suggest git fetch origin -p
. But, in fact, this is just a way to clean up the remote branches cached locally, i.e. the branches you see when you run git branch -r
.
It seems that the current git does not implement such handy feature. I have quickly created this snippet in GitHub.
#!/bin/bash -e
git fetch origin -p
REMOTE=$(git branch -r | sed "s/origin\///g")
BRANCHES=$(git branch | awk -F ' +' '! /\(no branch\)/ {print $2}')
for branch in $BRANCHES; do
if [[ -z $(echo $REMOTE | grep -w $branch) ]]; then
git branch -D $branch
fi
done
Ref: https://gist.github.com/RyanSiu1995/da44646f747623d9f51ec52724f16066
Once you create a file with this code, run the following command to put it to your PATH
.
chmod 777 git-prune-branches
mv git-prune-branches /usr/local/bin
Enjoy!
Top comments (0)