When I want to split up a new file into several commits I can git add -N and then interactively stage lines using git gui. When I make a m
git add -N
git gui
Using fugitive you can easily do so. Just invoke the :Gdiff command and then stage and unstage whatever you want. You can even edit the index file directly. Of course, this solution requires you to be fairly comfortable with vim and vimdiff...
:Gdiff
vim
vimdiff