Source
Split the most recent commit
git reset HEAD~- then commit the pieces individually as usual
Split an older commit (during a rebase)
git rebase -i <commit-ish>- in the rebase editor select
editfor the commit to be split; save and close - you should now be at the correct point in the commit history, so again
git reset HEAD~- and again, commit the pieces individually as usual