Do an interactive rebase.
git rebase -i master
will rebase your current branch on master and let you edit/remove/rearrange commits and edit commit messages. You can also arbitrarily select which branch or range of commits to rebase and onto which branch.