I setup git diff to wrap into vimdiff, using \"Git Diff with Vimdiff\" as a guide, and it\'s working as expected unless there are many files with changes.
git diff
You can try git difftool, it is designed to do this stuff.
git difftool
First, you need to config diff tool to vimdiff
git config diff.tool vimdiff
Then, when you want to diff, just use git difftool instead of git diff. It will work as you expect.