My only advice is this - write as much of your business logic in your scripting modules as possible and call that from the GUI. The scripting modules you make are saved as plaintext .py files under your project directory. You can use github to manage those changes and changes would be human readable (ie line 5 used to be
print "hello" and now line 5 reads
print "goodbye"). You’d be able to leverage Githubs difference tracker on your scripts that way. This is also just good coding practice to put all of your business logic into separate functions instead of entwining your GUI with your business logic.
Perspective views are json and you could probably parse differences. I don’t think there is any way to track GUI changes in Vision though.
Again though the most benefit for least effort and for best practices would be to make sure you script as much as possible within your scripting modules and call those from the GUI. It will make your project way more maintainable in the long run as well. I only reiterate this because I have to deal with many projects that do not follow this and they all quickly become headaches to maintain and it is my number one pet peeve when dealing with Ignition projects. Avoid the Magic Pushbutton