Undo – remove a commit and retain the changes to files
Instead of performing the hard reset and thereby losing all the changes the commit introduced, the reset can be performed so that the changes are retained in the working directory.
Getting ready
We'll again use the example of the hello world
repository. Make a fresh clone of the repository, or reset the master
branch if you have already cloned one.
You can make a fresh clone as follows:
$ git clone https://github.com/dvaske/hello_world_cookbook.git $ cd hello_world_cookbook
You can reset the existing clone as follows:
$ cd hello_world_cookbook $ git checkout master $ git reset --hard origin master HEAD is now at 3061dc6 Adds Java version of 'hello world'
How to do it...
First, we'll check whether we have made no changes to files in the working tree (just for the clarity of the example) and the history of the repository:
$ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean...