Reputation: 8972
In Subversion (SVN), it's possible to do svn revert ./*
in which the current directory and only the current directory gets reverted.
What is the Git equivalent to svn revert
in which only the current directory gets reverted?
I know that there's git reset --hard
, but it reverts everything and not just the current directory.
How would I revert just the current directory in Git?
Upvotes: 51
Views: 68522
Reputation: 68708
Go to the folder you want to revert and do this:
git checkout -- .
See more in krlmlr's answer to How to git reset --hard a subdirectory.
Upvotes: 44
Reputation: 8079
When I was a Git novice (and afraid of the terminal) I found the easiest way was to:
Upvotes: 7
Reputation: 37807
If you want to do it recursively from a specific directory:
git checkout -- ./*
git checkout -- mydir/*
Upvotes: 1
Reputation: 121702
Like vcsjones says, the solution here is git checkout
:
git checkout <refspec> -- path/to/directory # or path/to/file
where <refspec>
can, for instance, be HEAD
, that is, the current working commit. Note that this usage of the checkout
command will affect the working tree but not the index.
git revert
is used to "revert a commit", and by this, it should not be understood that the commit disappears from the tree (it would play havoc with history -- if you want that, look at git rebase -i
). A reverted commit consists of applying, in reverse, all changes from the commit given as an argument to the tree and create a new commit with the changes (with a default commit message, which you can modify).
Upvotes: 88