I recently replaced the author, committer and emails thereof in all of my local commits, using the following command:
After using git filter-branch, git still retains a backup copy of the history of the repo in refs/original. This is so that if you mess something up with filter-branch, you can revert if need be. Once you're sure everything went smoothly, you can remove the backed up ref with:
git update-ref -d refs/original/refs/heads/master
For some reason, it still takes an additional commit for github to reflect the change. I'll add a space or something to the readme, commit and push... after that, github reflects the correct authors on the project page.