git remove unpushed commit

C++
# Removes latest commit from the stash, KEEPS changes
git reset --soft HEAD~

# Removes latest commit from the stash, DELETES changes
git reset --hard HEAD~git reset --soft HEAD~1
# Remove ALL commits up to commit hash.
# NB: Make sure these commits have not been pushed.

git reset --hard <commit hash number>
Source

Also in C++: