Problems with the order of commits or their messages
If the problem is not with the last commit (in which case you'd use --amend), it's time to break out interactive rebase as shown in Chapter 8, Interactive Rebasing. If you haven't pushed yet, Interactive Rebase will let you do all this and more.