Sort git Branches by Date
I'll be first person to admit I don't do as much git repository maintenance as I should. I rarely delete branches which have been merged, so a git branch execution shows me a mile-long list of branches that likely aren't relevant. The best way to find branches I've recently used is to use the following command:
git for-each-ref --sort=-committerdate refs/heads/
The command above lists the most recently worked on branches from top to bottom. If you want to see the date of last commit, you can do this:
git for-each-ref --sort='-committerdate' --format='%(refname)%09%(committerdate)' refs/heads | sed -e 's-refs/heads/--'
I find these commands incredibly helpful when returning to work from a weekend or just jumping from project to project. Hopefully you can use these commands too!
![An Interview with Eric Meyer]()
Your early CSS books were instrumental in pushing my love for front end technologies. What was it about CSS that you fell in love with and drove you to write about it?
At first blush, it was the simplicity of it as compared to the table-and-spacer...
![Conquering Impostor Syndrome]()
Two years ago I documented my struggles with Imposter Syndrome and the response was immense. I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions. I've even caught myself reading the post...
![Event Delegation with MooTools]()
Events play a huge role in JavaScript. I can't name one website I've created in the past two years that hasn't used JavaScript event handling on some level. Ask yourself: how often do I inject elements into the DOM and not add an...
![Introducing MooTools LazyLoad]()
Once concept I'm very fond of is lazy loading. Lazy loading defers the loading of resources (usually images) until they are needed. Why load stuff you never need if you can prevent it, right? I've created LazyLoad, a customizable MooTools plugin that...
I use this version to show latest git branches with the timestamp as a relative/human readable format:
Hey man, I used your snippet and noticed after a while that it actually gets the timing wrong. For example a branch I created today is showing as being worked on 2 weeks ago
That might be because the timestamp doesn’t show the branch creation time but the commit time of the last commit of the branch.
I’m definitely going to bookmark this as I’m using git more and more in team settings where we will probably be branching a lot more. This will come in handy.
Super-helpful even three years on — thank you!
FWIW, I found it much easier to read by putting the date first, as in Amy’s example. That also allows for reverse sorting if desired.
This is gold, thanks a lot!
So helpful! I’ve accumulated dozens of branches in my main project over the years. Sorting them by date, and seeing the dates, is super helpful when trying to purge the useless ones while still keeping around some of the just-in-case guys.
Good feature, thanks a lot!
Also I add that you can add this command to .gitconfig e.g. like a “lastbrs” (last branches) and add the flag “–count” to prevent display all the branches.
You can also just do
git branch --sort=-committerdateto get the local branches with the most recently committed to on top.Also, forgot to mention. If you want this to be the default sort order for all your repositories. Just do
git config --global branch.sort -committerdate.After that a regular call to
git branchwill sort like this.