I got some commits in my repository:
like:
A - Added Feature A
B - Removed Feature B
C - Redesigned Feature C
D - Added Feature D
E - Added Feature
git reabse -i HEAD~3
you will have the list of your 3 last commit messages
C - Redesigned Feature C
D - Added Feature D
E - Added Feature D
you just insert x git reset HEAD^ before the commit you want to undo, you want to undo commit C, so it will be like this
C - Redesigned Feature C
x git reset HEAD^
D - Added Feature D
E - Added Feature D
exit rebase console, you will see that your commit is no more in the log and their files are staged.