Pebellslearn by building
0%
RoadmapsMatrixCoursesSandboxSign in
What is a Repository  ›  Capstone Project

Viewing Commit History

Viewing Commit History 12 mingit log lists commits newest first, and filters and formats such as --oneline, a file path, --author, --grep and git show let you find and inspect any change.

Viewing Commit History

Asha's recipe box now has a dozen commits. She wants to know when the chai recipe got more ginger, and who changed the bread oven temperature. That is exactly what the history is for, and git log is the way in.

The rule

git log reads history newest first; add flags to narrow or reshape it.

The plain command lists each commit with its hash, author, date and message, starting with the latest:

git log
# commit 9b2d7e4a...  (HEAD -> main)
# Author: Asha Rao <asha@example.com>
# Date:   Tue Mar 3 18:12:40 2026 +0530
#
#     Add more ginger to chai

Press q to leave the pager, and the arrow keys or space to scroll.

The flags you will use most:

git log --oneline           # one short line per commit
git log -3                  # only the last three commits
git log -- chai.md          # only commits that changed chai.md
git log -p -- chai.md       # the same, with each commit's line changes
git log --author="Asha"     # commits by a matching author
git log --grep="ginger"     # commits whose message mentions ginger
git log --oneline --graph --all   # a picture of every branch

--oneline output looks like this:

9b2d7e4 (HEAD -> main) Add more ginger to chai
51c0a88 Fix oven temperature in bread
e3f1b07 Add bread recipe
a17c4d2 Add chai and pancake recipes

HEAD -> main marks where you are: HEAD is Git's name for the commit you currently have checked out, here the tip of main.

To look inside a single commit, pass its short hash to git show:

git show 51c0a88

It prints the commit's details followed by exactly the lines it added and removed.

You do not always need a hash. Git understands a few relative names: HEAD is the current commit, HEAD~1 is its parent, and HEAD~2 is the one before that. So git show HEAD~1 means "show me the commit before this one", which is handy when you only want to check what you did a moment ago.

Filters can also be combined. git log --oneline --author="Asha" -- chai.md lists only Asha's commits that touched the chai recipe, and --since="2 weeks ago" limits any of these to recent work. Each extra filter narrows the list further, so a question like "what did Asha change in the chai recipe this month?" becomes a single command instead of a long read.

The shortcut

Ask "Which commits, and how much detail?" Choose the which with a filter (-3, -- file, --author, --grep), then the detail with a format (--oneline for a scan, -p or git show for the lines).

When did the chai get more ginger?Step 1 of 3
  1. Which commits?

    Only those that touched chai.md: git log --oneline -- chai.md.

The trap is scrolling through a thousand-line git log looking for one change. Filter first; history is only useful when you can find things in it.

Drills

Answer fast — trust the rule.

quick drill

In what order does git log list commits by default?

quick drill

Which command shows only commits that changed bread.md?

quick drill

Asha wants the exact lines changed in commit 51c0a88. What should she run?

quick drill

In 9b2d7e4 (HEAD -> main) Add more ginger to chai, what does HEAD -> main tell you?

quick drill

Which command draws a compact picture of every branch's history?

Remember

  • git log reads history newest first; add flags to narrow or reshape it.
  • Pick which commits (-3, -- file, --author, --grep), then how much detail (--oneline, -p, git show).
  • Filter before you scroll.

Practice — level up

0/1 solved

Write your answer, then compare it with a rubric and a model answer.

ExplainTrack down a change

Someone changed the bread oven temperature and the bread now burns. Explain which commands you would use to find the commit that changed it, see exactly what changed and who made the change.