Search code examples
gitrevert

How to revert a folder to a particular commit


Here's my history for the folder 'somefolder'

$ git log somefolder

commit 89cd
More changes to somefolder

commit ef47a
Updating somefolder and other stuff

commit e095
Bugs fixed in somefolder

I want to revert somefolder back to the 'Bugs fixed in some folder" commit.

Since the second commit involved changes outside of somefolder, I don't want to revert this commit.

I guess the safest way would be to create a diff/patch between commit e095 and 89cd that applies just to some folder, and then apply that patch. How can I do that?


Solution

  • You can use git checkout to update your repository to a specific state.

    git checkout e095 -- somefolder
    

    As for your question about generating the diff, that would work too. Just generate the diff to go from your current state back to e095:

    git diff 89cd..e095 -- somefolder