Commits
Make an empty commit
git commit --allow-empty -m "empty commit"
Undo the last commit and move changes to Working Directory (changes in staging area will also move to Working Directory) (–mixed by default)
git reset HEAD^
Undo the last commit and move changes to the Index
git reset --soft HEAD^
Undo the last commit and move changes to the Working Directory
git reset --mixed HEAD^
Undo the last commit and DELETE changes (uncommitted ones too)
git reset --hard HEAD^
CHERRY PICK
Copy one commit to current branch
git cherry-pick <SHA>
Copy range of commits to current branch
git cherry-pick <SHA>..<SHA>