Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to undo local changes to a specific file [duplicate]

Tags:

git

git-revert

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?

like image 926
jww Avatar asked Jul 08 '15 00:07

jww


1 Answers

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.


  • git-checkout Documentation
  • git-revert Documentation

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.

  • git-restore Documentation
like image 119
mkasberg Avatar answered Sep 19 '22 03:09

mkasberg