List Recent git Commits from Command Line

By  on  

GitHub is an amazing service which brings the boring, sometimes difficult git command line tool to life.  Oftentimes instead of futzing with the command line I'll simply bring up GitHub and find what I need.  In the year 2016, however, I'm trying to break away from GUI crutches and learn more low level stuff.

One task I've been using GitHub for is a retrieving a list of recent commits to a repo -- especially useful at this type of year when I (and many others) were wasting away on vacation over the holidays.  I found a useful command for listing commits newest to oldest so on commandlinefu:

git log --oneline | nl -v0 | sed 's/^ \+/&HEAD~/'

That command will render a listing with the latest commits first and original commit last:

0	b0d9243 Merge pull request #119 from awalGarg/master
1	f0b7b87 Merge pull request #189 from delapuente/proxify-render-store
2	973476a Add proxy to images as well
3	986e9fe Merge pull request #188 from delapuente/proxify-render-store
4	7f7ae51 Adding proxy to allow mixed content

...

401	2813e25 Update README.md
402	1ec78c5 Create README.md
403	c2c95db Initial commit

Of course typing this each time would be a nightmare to remember so a custom command or alias would be in order!

Recent Features

  • By
    Responsive and Infinitely Scalable JS Animations

    Back in late 2012 it was not easy to find open source projects using requestAnimationFrame() - this is the hook that allows Javascript code to synchronize with a web browser's native paint loop. Animations using this method can run at 60 fps and deliver fantastic...

  • By
    CSS Animations Between Media Queries

    CSS animations are right up there with sliced bread. CSS animations are efficient because they can be hardware accelerated, they require no JavaScript overhead, and they are composed of very little CSS code. Quite often we add CSS transforms to elements via CSS during...

Incredible Demos

  • By
    Unicode CSS Classes

    CSS class name structure and consistency is really important; some developers camelcase classnames, others use dashes, and others use underscores.  One thing I've learned when toying around by HTML and CSS class names is that you can actually use unicode symbols and icons as classnames.

  • By
    Link Nudging with CSS3 Animations

    One of the more popular and simple effects I've featured on this blog over the past year has been linking nudging.  I've created this effect with three flavors of JavaScript:  MooTools, jQuery, and even the Dojo Toolkit.  Luckily CSS3 (almost) allows us to ditch...

Discussion

  1. Vladimir

    …or can simply use command “tig”. =)

  2. slash3b
    git log - - oneline - number of commits
  3. Chris McCoy

    nice one ;)

    here are some more handy git commands i have put together

    https://gist.github.com/chrismccoy/8775224

    • Dharm

      Hello Chris, I am a newbie to Git and to it’s commands. Very helpful commands. I have one requirement where I need the fetch the list of commit ids from the RELEASE branch created by a development branch. Assume is that the development branch has been checked in multiple times to the RELEASE based on the multiple requirements.

  4. We were once asked to note down what we did the whole day long.
    Defining an alias like:

    git config --global alias.today ‘shortlog --since=”1am” --no-merges’
    

    and then invoking

    git today
    

    eased that task :-)
    (It lists all commits since a.m. sorted by author and excludes possible merge requests thereby)

  5. Even more quickly and easily:

    gem install git-smart
    git smart-log
    
  6. I have an alias that lets me quickly look at the last 20 commits; use it all the time. In my .zshrc:

    gso='git log --oneline -20 --decorate'
    

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