Move (or "Undo") last git commit to unstaged area [duplicate]

Solution 1:

You can use git reset to set the current branch to the preceding commit, i.e. HEAD^

git reset HEAD^

Adding --soft will keep those files in the index: (ready to be committed)

git reset --soft HEAD^

--soft

(…) This leaves all your changed files "Changes to be committed", as git status would put it.

Solution 2:

git-extras provides a git undo command which is an easier to remember way of doing the same thing (along with a number of other handy extras, as the name implies).