Pure JavaScript implementation of Git backed by immutable models and promises. The goal is to provide both a low and high level API for manipulating Git repositories: read files, commit changes, edit working index, clone, push, fetch, etc.
Full article