This could probably be done by stepping back through the editing session with the :earlier/:later commands and a little scripting. It depends on how you decide when to take a snapshot. Should it be time based? Based on how much content changed?

==

offby1 here. I know almost nothing about vim, but I too assume it should be pretty easy. On the other hand, it's probably not as easy as committing to git every time you save; thus it might be worth writing a hook (if that's what vim would call it) that commits to git every time you have vim save the file.