I can't be the only dev that has struggled with this.
Oh, certainly not- a few people laughed when they saw your post, saying "It must be that time of year!", since this is a subject that comes up routinely at the ICC. So if it comes up so much, why haven't we done anything?
To cut straight to the chase, this is definitely on our minds as we work on Ignition 8. We have plans to rework the project structure (something that we've been hesitant to do in the last few releases) in such a way that better version control support should be possible. That said, the idea that you'll just have your entire Ignition project in github, with everything perfectly diff-able and mergeable probably isn't going to happen.
Our main goal is to improve how resources are managed/versioned/distributed across enterprise systems (that's to say, multiple gateways). Right now, we have a set of features comprising of Save/Publish+Project Rollback+EAM to distribute copies, all of which have various shortcomings in terms of effectively managing resources in a distributed way.
Support for external VCS systems would be nice, but would probably be layered in as a secondary component to the changes I mentioned above (as in, you could have the resources sync'd to VCS, but Ignition likely wouldn't know much about that).
As for your current situation, since you mention scripting specifically, you might be able to get pretty far, as-is. If you're not familiar with external python libraries in Ignition, check this out:
https://support.inductiveautomation.com/index.php?/Knowledgebase/Article/View/98/2/importing-and-using-3rd-party-python-libraries-in-ignition
There is a folder of python libraries that is monitored by the gateway, and even sync'd to clients. Many customers use external tools (editors+VCS) to manage their libraries, and then the code inside the project is minimized to calls to these external scripts. Not complete coverage, but for complicated libraries it can get you much further towards what you want.
Hope this helps a bit!