.sketch file is actually a zip file containing a json representation of the project.
Check git hook method and scripts. After downloading few scripts in your repo, we can commit changes on the .sketch file, and the hook scripts will unzip the sketch, prettify the json and prepare the commit.
Goods Do everything you need: get pretty json files describing your sketch project.
Bads When committing on the project, you have no idea of the json files that are part of the commit.
Check git-sketch-plugin If I understand correctly it is the ancestor of Kaktus.
Goods You can do the commit and push from Sketch !!!
Bads Not sure the plugin is even generating json files out of the sketch project.