git undo commit

C++
# KEEP CHANGES
git reset --soft HEAD~1

# REMOVE CHANGES
git reset --hard HEAD~1# Uncommit the changes
git reset --soft HEAD~1

# Completely delete the changes
git reset --hard HEAD~1$ git reset --soft HEAD~1
git reset --soft HEAD~1# Undo last commit.
# --soft flag makes sure that the changes in undone revisions are preserved.
# You'll find the changes as uncommitted local modifications in your working copy.
git reset --soft HEAD~1

# If you don't want to keep these changes, simply use the --hard flag.
# This will completely remove the changes.
git reset --hard HEAD~1#this  will preserve changes done to your files
git reset --soft HEAD~1

#this will get rid of the commit and the changes done to the files
$ git reset --hard HEAD~1
 
Source

Also in C++: