loading...
Cover image for Git and GitHub: How to Revert a Single File.

Git and GitHub: How to Revert a Single File.

lofiandcode profile image Joseph Trettevik Updated on ・3 min read

Song of the Week

Introduction

Once you start collaborating with other developer it's going to be important to know how to revert a single file to a certain commit. This need arises because you sometimes need to change files not related to you're pull request in order to test the feature you're working on. However, manually changing each line of code in those files back to their original state and doing a new commit can lead to a messy commit history. Reverting the file is a much cleaner what to handling it.

Find the Commit ID

First you need to go to the shared repository on GitHub and find the file that you want to revert. Once you navigate to the file, right above the file you should see this:
Alt Text
On the right hand side you can see a 7 digit commit ID and a date. That is the commit ID for the most recent commit in which that file was modified. Either write this commit ID down, or copy it to your clipboard.

Find the File Path

The next thing you need is the path to the file from the working directory. This part is easy because the path to the file is on the same GitHub screen where you found the commit ID for the file.
Alt Text
Above you can see the same screenshot from before, but this time I've underlined the file path. Notice I only underlined part of the path. The first directory listed is the working directory name, and will be the directory you're in when using this file path. Because of this, you only want the underlined portion.

Revert the file.

All that is left is to revert the file. Once you've opened a terminal and changed to the working directory, you use git checkout to revert the file. The format of the git command will look like this:

git checkout [commit ID] -- path/to/file

If I were going to revert the file in the screenshots above, that would look like this:
Alt Text

Commit the Change

I know what you're thinking, "Wait a minute, I thought the whole point was to not create a new commit?" Well that's half true. We didn't want a new commit for the file we reverted. But once we revert the file, we need to commit that change. In this case, the change is a revert of a single file. This done with the standard commit command:

git commit -m 'commit message'

Then you can push that commit to the remote so that the version of your branch on GitHub matches your local version.

Takeaways

To revert a single file to a specific version do the following:

  • Find the commit ID of the version of the file you want to revert to.
  • Find the path to the file you want to revert from the working directory.
  • In the terminal, change directories to the working directory.
  • Type git checkout [commit ID] -- path/to/file and hit enter.
  • Commit the change to the reverted file.

References

Cover Image
How can I reset or revert a file to a specific revision? - Stackoverflow

Posted on by:

lofiandcode profile

Joseph Trettevik

@lofiandcode

Full Stack Software Engineer who loves puzzles. Experience in React, JavaScript, and Ruby on Rails, and strong skills in problem solving and writing algorithms.

Discussion

pic
Editor guide
 

Simple and useful! Thanks