# nodegit **Repository Path**: mirrors_Glavin001/nodegit ## Basic Information - **Project Name**: nodegit - **Description**: Native asynchronous bindings to libgit2 for Node.js. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README nodegit ======= > Node.js libgit2 bindings **v0.1.0** [![Build Status](https://travis-ci.org/tbranyen/nodegit.png)](https://travis-ci.org/tbranyen/nodegit) Maintained by Tim Branyen [@tbranyen](http://twitter.com/tbranyen), Michael Robinson [@codeofinterest](http://twitter.com/codeofinterest), and Nick Kallen [@nk](http://twitter.com/nk), with help from [awesome contributors](https://github.com/tbranyen/nodegit/contributors)! API Documentation ------------------------ Documentation may be found here: [`nodegit` documentation](http://www.nodegit.org/nodegit/). Building and installing ----------------------- ### Dependencies ### To install `nodegit` you need `Node.js`, `python` and `cmake` (>=2.8). ### Easy install (Recommended) ### This will install and configure everything you need to use `nodegit`. ```` bash $ npm run-script gen && npm install && npm test ```` ### Mac OS X/Linux/Unix ### #### Install `nodegit` by cloning source from GitHub and running `node install`: #### ```` bash $ git clone git://github.com/tbranyen/nodegit.git $ cd nodegit $ npm run-script gen && npm install ```` ### Windows via Cygwin ### #### `nodegit` has been compiled and tested to work with the setup required to build and run `Node.js` itself. #### Instructions on compiling `Node.js` on a Windows platform can be found here: [https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-(Windows)](https://github.com/ry/node/wiki/Building-node.js-on-Cygwin-%28Windows%29) API Example Usage ----------------- Below are two examples. [There are several more](https://github.com/nodegit/nodegit/tree/master/example). ### Git Log Emulation ### ```JavaScript var git = require('../'), path = require('path'); git.Repo.open(path.resolve(__dirname, '/tmp/repo/.git'), function(error, repo) { if (error) throw error; repo.getMaster(function(error, branch) { if (error) throw error; // History returns an event. var history = branch.history(); // History emits 'commit' event for each commit in the branch's history history.on('commit', function(commit) { console.log('commit ' + commit.sha()); console.log('Author:', commit.author().name() + ' <' + commit.author().email() + '>'); console.log('Date:', commit.date()); console.log('\n ' + commit.message()); }); // Don't forget to call `start()`! history.start(); }); }); ``` ### Clone a repo and read a file ### ```JavaScript git.Repo.clone("https://github.com/nodegit/nodegit.git", path, null, function(error, repo) { if (error) throw error; repo.getCommit('59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5', function(error, commit) { if (error) throw error; commit.getEntry('README.md', function(error, entry) { if (error) throw error; entry.getBlob(function(error, blob) { if (error) throw error; console.log(entry.name(), entry.sha(), blob.size() + 'b'); console.log('========================================================\n\n'); var firstTenLines = blob.toString().split('\n').slice(0, 10).join('\n'); console.log(firstTenLines); console.log('...'); }); }); }); }); ``` [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/a81b20d9f61dbcdc7c68002c6a564b5b "githalytics.com")](http://githalytics.com/tbranyen/nodegit)