In this short post I'd like to share with you a simple solution to the issue I'm encountering from time to time. The problem is that each of repositories I'm actively working on is aggregating a lot of branches, because in my workflow, I'm creating a new branch for each new task I'm working with. After merging branch to
main, I want to keep the branch for a while just-in-case, but then, as one would expect, I forget to delete it. So after some time, when I run
git branch I am getting more and more results. Actually, I've decided to do something about it when I saw that I have 61 local branches in one of my local repos.
The solution that came to my mind was to right a shell function and add it to my
~/.zshrc that would work as command that can remove all of the unused local branches automatically.
I've decided that this command should work in the opposite way to
git branch --delete where you provide a list of branch names you want to delete. So instead, I want to provide the list of branches I want to keep.
After a thought that I'd need to add branch
master each time I'd run this command, I've decided to always add them to the list of branch names that should not be deleted.
Another improvement I've decided to add was to always keep the current branch. Just in case I've decided to clean up all the branches but forgot that I'm already not on the
In my case, I've added it to a file called
~/.custom_aliases that I keep developing for improving productivity and is "imported" inside my
Here's the code for it:
So if you ran
git branch and see something like 👇:
and then you run 👇:
You will end up with clean repo with just the
main branch, current branch, and the branches you explicitly provided not being deleted:
And all that with just a single command. :not_bad:
That's it from me, thanks for reading. I encourage you to leave a like/comment here or star/comment on github. See you! 👋
Top comments (1)
Thanks for the article! ❤️