To discard the changes of a file no matter it is staged or not:
# Undo modifications of a file from working tree and index $ git checkout -- <file> # Examples: # Undo modifications of index.php $ git checkout -- index.php
git status tells you how to undo the changes:
$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: index.php
stashcommand is a safer way to discard changes, because it allows you to revert the changes again. See stashing changes for how to use it.