We thought to use bitbuckets to store the configurations and track the changes. But we are yet to implement. I am not sure about the other solutions.
I recommend installing bitbucket on server which is in your control In your org rather keeping your configurations on github.
There are couple of different splunk apps on splunkbase which are utilising git for doing backups and some even give possibility to restore via gui. You could found those from google + add site:community.splunk.com to your search.