The following teaches git how to convert a plist into text that can be usefully diffed:

# .gitconfig / .git/config
[diff "plist"]
    textconv = /usr/libexec/PlistBuddy -x -c print

All that’s left is teaching git how to recognize plist files:

# .gitattributes
*.plist diff=plist

(originally)