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