I have started using Git in the middle of my project, where the first two commits are just some initial settings (.gitignore and .gitattributes), and the third commit
The most elegant solution would be to rebase the changes introduced by N .. Z commits on top of svn branch, but I didn't found yet the required syntax for two branches without a common ancestor.
Try to first cherry-pick I1 and I2 onto M1, and after that use the command git rebase --onto M1' M2 Z (where M1' is the M1-I1-I2 branch). I'm not sure whether rebase --onto works when there are no common ancestors, but if it doesn't, there is the possibility of using patches. Use the git format-patch to generate the patches of M2..Z and then git am to apply them on top of M1. Here are some experience reports on using it in converting old SVN and CVS repositories.