There is a node.js library called nodegit ( https://github.com/tbranyen/nodegit ) that provides asynchronous native bindings to git's C API - is this a better model for interfacing with a git repository than spawning git as a child process to run commands?