Git log – Quick Reference

Some useful git log and git show options which I am bound to forget and will be happy to have in a singe place!

Limit the log entries

$ git log -<number of entries>
ex: git log -2 shows the last two commit details
$ git log -2
commit 474ea8e80dc30576b8b8f764a4f52c72e54277bd
Author: Nikhil Kuriakose <nikhilkuria@hotmail.com>
Date: Tue Sep 16 20:38:39 2014 +0530

draft v0.1 changes added

commit 3ac4e6fae7098951746dc46947bd12baec4b1f22
Author: nikhilkuria <nikhilkuria@hotmail.com>
Date: Fri Aug 29 09:55:53 2014 +0530

Bug fix : Some nodes were having trouble finding their parent.. phew!!

OK, so how about if we want to look at all the commits made since yesterday? All we need is the --since option:

git log --since="yesterday"

We can also use --until to fetch all commits up to a certain date; or of course we can use both options in tandem:

git log --since="1 week ago" --until="yesterday"

There is also a neat way to search the commits. Suppose you are working on a method and you need to know the history of changes made on it. Say, I am interested in the method, updateMetaDataMaps

git log -SupdateMetaDataMaps

This shows the commits that introduced a change to the code that added or removed that string.

Neat formats to the log

A simple git log statement gives us so much information that i need at the moment.

$ git log
commit 474ea8e80dc30576b8b8f764a4f52c72e54277bd
Author: Nikhil Kuriakose <nikhilkuria@hotmail.com>
Date: Tue Sep 16 20:38:39 2014 +0530

draft v0.1 changes added

commit 3ac4e6fae7098951746dc46947bd12baec4b1f22
Author: nikhilkuria <nikhilkuria@hotmail.com>
Date: Fri Aug 29 09:55:53 2014 +0530

Bug fix : Some nodes were having trouble finding their parent.. phew!!

commit 0051792ee0808e781a17d95cfb0d7b56a4402335
Author: = <=>
Date: Wed Aug 27 18:07:28 2014 +0530

Sensible to split the attributes

commit 1da57b8e21ace5238a6303920f52cf7363882067
Author: ueec6tv <extern_kuriakose.nikhil@allianz.com>
Date: Tue Aug 19 17:20:12 2014 +0530

extra lines!!!

And if you think you need even more information, the file changes can be shown using

$ git log -p

But, if you just need to see a minimal view, the –pretty=oneline option will help,

$ git log --pretty=oneline
474ea8e80dc30576b8b8f764a4f52c72e54277bd draft v0.1 changes added
3ac4e6fae7098951746dc46947bd12baec4b1f22 Bug fix : Some nodes were having trouble finding their parent.. phew!!
0051792ee0808e781a17d95cfb0d7b56a4402335 Sensible to split the attributes
1da57b8e21ace5238a6303920f52cf7363882067 extra lines!!!
eeb5c9a33462c2bfb6c058b55bbf6cb97d799607 Adding a sample xml file

–pretty also comes with options short, full and fuller options to show the output in roughly the same format but with less or more information, respectively

$ git log --pretty=short
commit 474ea8e80dc30576b8b8f764a4f52c72e54277bd
Author: Nikhil Kuriakose <nikhilkuria@hotmail.com>

draft v0.1 changes added

commit 3ac4e6fae7098951746dc46947bd12baec4b1f22
Author: nikhilkuria <nikhilkuria@hotmail.com>

Bug fix : Some nodes were having trouble finding their parent.. phew!!
$ git log --pretty=fuller
commit 474ea8e80dc30576b8b8f764a4f52c72e54277bd
Author: Nikhil Kuriakose <nikhilkuria@hotmail.com>
AuthorDate: Tue Sep 16 20:38:39 2014 +0530
Commit: Nikhil Kuriakose <nikhilkuria@hotmail.com>
CommitDate: Tue Sep 16 20:38:39 2014 +0530

draft v0.1 changes added

commit 3ac4e6fae7098951746dc46947bd12baec4b1f22
Author: nikhilkuria <nikhilkuria@hotmail.com>
AuthorDate: Fri Aug 29 09:55:53 2014 +0530
Commit: nikhilkuria <nikhilkuria@hotmail.com>
CommitDate: Fri Aug 29 09:55:53 2014 +0530

Bug fix : Some nodes were having trouble finding their parent.. phew!!

One of the most frequent things I have to do is find a commit based on a comment and see the changes. For example, I need to see the changes I made for a defect XYZ. I dont remember when I made the change, but I am sure, I will have the defect ID in the comment.

This is where the –pretty=oneline comes in handy, because the comment and the hash will be in one line

$ git log --pretty=oneline --grep="5716"
3546c34211dfa2de1477ee8a1c12d075ccc3729b fix for td 5716. adding extra validation

now, if i get the hash, i can quickly do a git show to see the changes i made,

$ git show 3546c34211dfa2de1477ee8a1c12d075ccc3729b

Comparing .csv files and generate sweet HTML reports in rendersnake

Here is a simple library to perform a simple operation. Compare two delimiter separated files and output an .html file.

Simple and straightforward. It can be used to output a ‘Comparison Result’ object, or it can be used to print out an .html report

Features

  1. Compare methodology can be customized using a properties file
  2. Report can be customized using a properties file

Using rendersnake and it pretty awesome.. It is available on github and v1.0 is somewhere between the first cry of the baby and kindergarten.

Here is the gitlab link.

See a report sample,

csvCompare

csvCompare

enjoy..