Git undo changes in some files [duplicate] Git undo changes in some files [duplicate] git git

Git undo changes in some files [duplicate]


There are three basic ways to do this depending on what you have done with the changes to the file A. If you have not yet added the changes to the index or committed them, then you just want to use the checkout command - this will change the state of the working copy to match the repository:

git checkout A

If you added it to the index already, use reset:

git reset A

If you had committed it, then you use the revert command:

# the -n means, do not commit the revert yetgit revert -n <sha1># now make sure we are just going to commit the revert to Agit reset Bgit commit

If on the other hand, you had committed it, but the commit involved rather a lot of files that you do not also want to revert, then the above method might involve a lot of "reset B" commands. In this case, you might like to use this method:

# revert, but do not commit yetgit revert -n <sha1># clean all the changes from the indexgit reset# now just add Agit add Agit commit

Another method again, requires the use of the rebase -i command. This one can be useful if you have more than one commit to edit:

# use rebase -i to cherry pick the commit you want to edit# specify the sha1 of the commit before the one you want to edit# you get an editor with a file and a bunch of lines starting with "pick"# change the one(s) you want to edit to "edit" and then save the filegit rebase -i <sha1># now you enter a loop, for each commit you set as "edit", you get to basically redo that commit from scratch# assume we just picked the one commit with the erroneous A commitgit reset Agit commit --amend# go back to the start of the loopgit rebase --continue


Source : http://git-scm.com/book/en/Git-Basics-Undoing-Things

git checkout -- modifiedfile.java


1)$ git status

you will see the modified file

2)$git checkout -- modifiedfile.java

3)$git status


git add B # Add it to the indexgit reset A # Remove it from the indexgit commit # Commit the index