Sentry Answers>Git>

Revert single file to earlier state in Git

Revert single file to earlier state in Git

David Y.

The Problem

How can I revert one file to its state in a previous commit without changing anything else in my Git repository?

The Solution

First, we’ll need the commit hash of the commit we want to restore our file from. The commit hash is the long alphanumeric string you may have seen associated with each of your commits – each one is unique and functions as an identifier for the repository state at that time. It looks something like this:

Click to Copy
070cc94d35c1c45fb40c13344583e16f77e76c0b

While a full commit hash is 40 characters long, Git will allow us to use the first seven characters to refer to it. So the above hash can be shortened to 070cc94.

We can look at previous commits by running git log and temporarily revert our repository’s state to them by running git checkout <hash>, using either all 40 characters of the hash or the first seven. When we’re done looking at the repository in this past state, we can return to a current state by checking out an active branch – e.g. git checkout main.

If we have the names of the files to restore and the commit hash to restore them to, we can restore them with a git checkout command:

Click to Copy
git checkout 070cc94 -- file-to-restore.txt another/file-to-restore.py

The use of -- in this command tells Git that rather than checking out the entire repository at this commit (as we would with git checkout 070cc94 on its own) we only want to check out a subset of files.

  • Syntax.fmListen to the Syntax Podcast
  • ResourcesWhat is Distributed Tracing
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.