Quick steps
- 
git rebase -i-> mark your commit withedit
- 
git reset HEAD~(remove the marked commit, but keep its changes)
- Make several commits (optionally setting the previous author manually)
- git rebase --continue
Detailed instructions
Basically, you will review the last n commits and stop at the splittable commit. Then you'll undo that commit and put its changes into new commits at your liking.
- 
Review commits ( rebase)git rebase -i HEAD~3 # or git rebase -i origin/masterGit will give you a list of commits, youngest at the bottom. It will look like this: pick 27f2769 Do something pick b891fd1 Do many things pick da3c35c Do something else
- 
Mark the splittable commit: replace pickwithedit. Save/:wq/exit.Git will now re-apply the commits one by one. Once it has applied the splittable commit (say, b891fd1), it will stop and wait for you to make changes
- 
Unwrap the commit, i.e. drop the commit, but keep all its file changes: git reset HEAD~
- 
Prepare the first new commit by adding files or parts of files: # Examples: git add vendor # or git add config/database.yml # or git add -p
- 
Once you're done, commit: git commit -m 'My commit message'If you're modifying the commit of someone else, please re-set them as author as described here. 
- 
Repeat steps 4 & 5 until no changes are left. 
- 
Finish by telling git to continue the rebase: git rebase --continue