Bash case insensitive auto completion

Update: This post is now available at a new location:

I added these two lines in my .bashrc:

bind "set completion-ignore-case on"

bind "set show-all-if-ambiguous on"

This little trick makes my life a bit easier when working on the terminal. It makes auto completion be case insensitive. This means I can type cd proj, hit the Tab key, and auto completion works its magic changing it into cd Projects. Without this trick, I have to capitalize proj¬†as Proj. This is annoying because I have to be aware of whether I’m working on Windows (case insensitive) or Mac/Linux (case sensitive). With this trick, I just hit Tab.



git tip: Delete merged branches

Update: This post is now available at a new location:

If you want to delete your local branches that have already been merged to master remotely, run this in a bash shell:

$ git branch -D `git branch --merged | grep -v '*' | xargs`

This deletes all branches that are merged, except the currently checked out branch (that’s the part with the start). So you should better run this while you’ve got the master branch checked out.

Update 2018-08-25: Powershell equivalent:

PS> git branch --merged | ? { $_ -notmatch '\*' } | ForEach-Object { git branch -d $_.Trim() }

A different way for bash:

$ git branch --merged | grep -v '*' | xargs git branch -d

Note that if you squash & merge (a popular option in GitHub and Bitbucket), then git branch --merged will not return these branches. In that case, try git branch -l but with the extra risk you might delete a branch you were still working on.