DEV Community

Franz Wong
Franz Wong

Posted on

5 1

View last change of a file in git without knowing the hash

git diff can show you the differences between 2 commits. You can use git diff HEAD~1 HEAD -- <filename> if the previous change is in the last commit.

But most of the time, the last change is not made in the last commit. It was made in n-th commits before. You can use git log -- <filename> to find out the commit of the last change. This introduces an extra step. 😅

Actually, you can use git log -p instead. Suppose we have a setup like below. We want to check the changes of b.

git init

echo "a1" > a
echo "b1" > b
git add .
git commit -m "1st commit"

echo "b2" > b
git add b
git commit -m "2nd commit"

echo "a3" > a
git add a
git commit -m "3rd commit"

It doesn't show anything if we use git diff HEAD~1 HEAD -- b, because it is comparing the 2nd and 3rd commit, there is no change in b.

If we use git log -p -- b, we can see all the changes on b without knowing the commit hash.

commit 5bb2c7acf3ba237f7c3f2b367996e92dd10b271f
Author: Franz <xxx>
Date:   Sat Sep 19 12:08:34 2020 +0800

    2nd commit

diff --git a/b b/b
index c9c6af7..e6bfff5 100644
--- a/b
+++ b/b
@@ -1 +1 @@
-b1
+b2

commit bd6508390bcb0f305a9e3e1f9a393d874df419c9
Author: Franz <xxx>
Date:   Sat Sep 19 12:07:54 2020 +0800

    1st commit

diff --git a/b b/b
new file mode 100644
index 0000000..c9c6af7
--- /dev/null
+++ b/b
@@ -0,0 +1 @@
+b1

If you want to see only the last change, you can use git log -p -1 -- b.

One more thing, you can use --no-pager if you don't like to switch to interactive mode when checking the diff. Just do git --no-pager log -p -- b.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (1)

Collapse
 
nimasarli profile image
Nima Sarli •

Love this. Thanks!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay