git abort changes

C++
$ git reset --soft HEAD~1
git checkout -- .
git stash save --keep-index --include-untrackedgit checkout HEAD -- my-file.txtgit stash save --keep-index --include-untracked
You don't need to include --include-untracked if you don't want to be thorough about it.

After that, you can drop that stash with a git stash drop command if you like.
Source

Also in C++: