Sort git Branches by Date

By  on  

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!

Recent Features

  • By
    CSS vs. JS Animation: Which is Faster?

    How is it possible that JavaScript-based animation has secretly always been as fast — or faster — than CSS transitions? And, how is it possible that Adobe and Google consistently release media-rich mobile sites that rival the performance of native apps? This article serves as a point-by-point...

  • By
    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...

Incredible Demos

  • By
    Creating the Treehouse Frog Animation

    Before we start, I want to say thank you to David for giving me this awesome opportunity to share this experience with you guys and say that I'm really flattered. I think that CSS animations are really great. When I first learned how CSS...

  • By
    Create a Dynamic Flickr Image Search with the Dojo Toolkit

    The Dojo Toolkit is a treasure chest of great JavaScript classes.  You can find basic JavaScript functionality classes for AJAX, node manipulation, animations, and the like within Dojo.  You can find elegant, functional UI widgets like DropDown Menus, tabbed interfaces, and form element replacements within...

Discussion

  1. I use this version to show latest git branches with the timestamp as a relative/human readable format:

    git for-each-ref --sort='-authordate:iso8601' --format=' %(authordate:relative)%09%(refname:short)' refs/heads
    • Eoghan

      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

  2. 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.

  3. Glenn

    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.

  4. Fredrik

    This is gold, thanks a lot!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!