git "revert" current directory

pillarOfLight picture pillarOfLight · Jan 2, 2013 · Viewed 41.8k times · Source

In 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?

Answer

fge picture fge · Jan 2, 2013

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).