Skip to content

lab 10 History

Goals

Getting a listing of what changes have been made is the function of the git log command.

Execute:

git log

You should see …

Output:

$ git log
commit 9811d9e446d4790217484450b0dd756915174341
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Sat May 30 19:47:54 2020 +0100

    Added a comment

commit 3344f03cca90b04c36465d3eecaaa8a66bfdaf27
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Sat May 30 19:47:54 2020 +0100

    Added a default value

commit 3cb4c1568725b4e973032d3d4d2e72d8e7f659d3
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Sat May 30 19:47:54 2020 +0100

    Using ARGV

commit dfb56149ae5fcc8921aa71567e39dc2a51139046
Author: Jim Weirich <jim (at) edgecase.com>
Date:   Sat May 30 19:47:54 2020 +0100

    First Commit

Here is a list of all four commits that we have made to the repository so far.

One Line Histories

You have a great deal of control over exactly what the log command displays. I like the one line format:

Execute:

git log --pretty=oneline

You should see …

Output:

$ git log --pretty=oneline
9811d9e446d4790217484450b0dd756915174341 Added a comment
3344f03cca90b04c36465d3eecaaa8a66bfdaf27 Added a default value
3cb4c1568725b4e973032d3d4d2e72d8e7f659d3 Using ARGV
dfb56149ae5fcc8921aa71567e39dc2a51139046 First Commit

Controlling Which Entries are Displayed

There are a lot of options for selecting which entries are displayed in the log. Play around with the following options:

git log --pretty=oneline --max-count=2
git log --pretty=oneline --since='5 minutes ago'
git log --pretty=oneline --until='5 minutes ago'
git log --pretty=oneline --author=<your name>
git log --pretty=oneline --all

See man git-log for all the details.

Getting Fancy

Here’s what I use to review the changes made in the last week. I’ll add --author=jim if I only want to see changes I made.

git log --all --pretty=format:'%h %cd %s (%an)' --since='7 days ago'

The Ultimate Log Format

Over time, I’ve decided that I like the following log format for most of my work.

Execute:

git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

It looks like this:

Output:

$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
* 9811d9e 2020-05-30 | Added a comment (HEAD -> master) [Jim Weirich]
* 3344f03 2020-05-30 | Added a default value [Jim Weirich]
* 3cb4c15 2020-05-30 | Using ARGV [Jim Weirich]
* dfb5614 2020-05-30 | First Commit [Jim Weirich]

Let’s look at it in detail:

This is a lot to type every time you want to see the log. Fortunately we will learn about git aliases in the next lab.

Other Tools

Both gitx (for Macs) and gitk (any platform) are useful in exploring log history.