ADDED BLAKEY-BONUS: I looked up how to do this on the CLI, and it's even MORE convoluted and idiotic. Somehow. It's either like a 20-line Bash script, or a 500-line CLI command that'll make your head spin and uses like 27 pipes to accomplish this simple fucking task. ("git cleanup-local-branches" is too fucking hard I guess. Fucking Git.)
Here's a nice script to delete all merged branches: (source)
git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d
Not super-simple, but hardly 20 to 500 lines. Thinking of it as a programming language, each statement is pretty straightforward if you've taken the couple minutes to learn the syntax.
If you don't want to type it every time, just add an alias. I have that line aliased locally as git-rm-merged
, which I can run periodically if things get messy. Alternately, if I recall correctly SourceTree can save it as a sort of "bookmark", so it's just a button click away.
It may take more knowledge than you have currently to understand how this works, but if you want to understand it rather than just rage about it, it is not hard to learn ;)