isomorphic-git/isomorphic-git ↗
Created Dec 15, 2020 · View the isomorphic-git/isomorphic-git repository page
A pure JavaScript implementation of git for node and browsers!
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
About isomorphic-git/isomorphic-git
Isomorphic-git is a pure JavaScript implementation of Git that runs in both Node.js and web browsers without any native dependencies. It achieves full interoperability with standard Git by reading and writing to the same .git directory format used by the canonical Git implementation. The project includes over 70 Git commands covering cloning, committing, pushing, pulling, branching, merging, and many other operations. It comes with TypeScript definitions for IDE support and includes a CLI tool called isogit for testing and basic repository management.
The library is designed for modern JavaScript bundlers like Webpack and Rollup, exposing individual functions so that only the code needed for a particular application gets bundled. In Node.js, isomorphic-git uses the native filesystem and HTTP modules directly. In browsers, it requires an abstraction layer for filesystem access, with the project recommending LightningFS as the easiest and most performant option, while also supporting ZenFS and Filer. Browser-based usage must handle CORS restrictions, which the project addresses through a companion cors-proxy tool and free proxy service.
The project is community-driven and currently maintained by volunteers rather than a dedicated team, though it retains funding through OpenCollective for development work. It has been adopted by several applications including web IDEs, API editors, and cloud platforms. The codebase uses Jest for Node testing and Karma with Jasmine for browser testing, with an automated release pipeline via semantic-release.