How to Undo Local Changes to a Specific File [Duplicate]

How to Undo Local Changes to a Specific File [Duplicate]

I'm trying to undo local changes to a specific file. Nothing has been committed.

When I want to revert all changes, I can perform git revert --reset HEAD. However, in this case, I don't want to revert all changes to all files.

Its not clear or obvious to me how to revert just a file, even after reading the git-revert(3) man page:

NAME
       git-revert - Revert some existing commits

SYNOPSIS
       git revert [--[no-]edit] [-n] [-m parent-number] [-s] <commit>...
       git revert --continue
       git revert --quit
       git revert --abort
...

This is similar to How to revert a specific file in a old commit on git, but no commits have been performed. And unlike OP, who wants to go back to an arbitrary commit, I just want the file to return to MASTER's copy of it.

Under SVN, I would just delete the file in question and then perform a svn update.

How do I revert changes to a single file?

2

1 Answer

You don't want git revert. That undoes a previous commit. You want git checkout to get git's version of the file from master.

git checkout -- filename.txt

In general, when you want to perform a git operation on a single file, use -- filename.



2020 Update

Git introduced a new command git restore in version 2.23.0. Therefore, if you have git version 2.23.0+, you can simply git restore filename.txt - which does the same thing as git checkout -- filename.txt. The docs for this command do note that it is currently experimental.

12
James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.