How to Diff a File to an Arbitrary Version in Git

John Wachira Feb 02, 2024
How to Diff a File to an Arbitrary Version in Git

This article discusses how we can diff a single file to a version in Git. You can compare the current version to any other version if you have a file in a certain branch in your repository with thirty iterations.

Let’s see how this can be done.

Diff a File to an Arbitrary Version in Git

For easier context, let’s assume we have a README.md file in our master branch with thirty iterations. We can run the command below to:

$ git diff master~25:README.md README.md

Compare our current README.md file to the one from our master branch twenty five revisions ago. Keep in mind that this command will compare the old README.md file to the version in our working tree.

To compare to the version committed in our master branch, we will run:

$ git diff master~25:README.md master:README.md

Alternatively, you can use the SHA-1 of a commit. Follow these steps.

First, we will retrieve the SHA-1 of the commit with the file version we need. Run the git log command, as shown below.

$ git log --README.md

Note the SHA-1 of the version you want to diff and run the command below.

$ git diff SHA-1:README.md README.md

We can also use this method to diff sub-directories in our repository, as shown below.

$ git diff <revision>: bar/ HEAD:bar/
Note
Use forward slashes on Windows for directories when employing a revision specifier.

In conclusion, Git allows us to diff a single file version to an arbitrary version in our repository. We have covered how we can diff between revisions for a single file.

Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Related Article - Git Diff