Use nbstripout[0] as a git filter. Then you have seamless git control of notebooks. There's talk of automatically saving code only separate versions in future releases.
I'm not sure how others work with this stack, so there is likely tooling I don't know about. I'd love to hear suggestions.
! git commit add ./my_file.ipnb
http://ipython.readthedocs.io/en/stable/interactive/python-i...