• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

nodegit: Native Node bindings to Git.

原作者: [db:作者] 来自: Gitee 收藏 邀请

NodeGit

Node bindings to the libgit2 project.

Actions Status

Stable ([email protected]): 0.28.3

Have a problem? Come chat with us!

Visit slack.libgit2.org to sign up, then join us in #nodegit.

Maintained by

Tyler Ang-Wanek @twwanek with help from tons ofawesome contributors!

Alumni Maintainers

Tim Branyen @tbranyen,John Haley @johnhaley81,Max Korp @maxkorp,Steve Smith @orderedlist,Michael Robinson @codeofinterest, andNick Kallen @nk

API Documentation.

http://www.nodegit.org/

Getting started.

NodeGit will work on most systems out-of-the-box without any nativedependencies.

npm install nodegit

If you receive errors about libstdc++, which are commonly experienced whenbuilding on Travis-CI, you can fix this by upgrading to the latestlibstdc++-4.9.

In Ubuntu:

sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install libstdc++-4.9-dev

In Travis:

addons:  apt:    sources:      - ubuntu-toolchain-r-test    packages:      - libstdc++-4.9-dev

In CircleCI:

  dependencies:    pre:      - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test      - sudo apt-get update      - sudo apt-get install -y libstdc++-4.9-dev

If you receive errors about lifecycleScripts preinstall/install you probably miss libssl-devIn Ubuntu:

sudo apt-get install libssl-dev

You will need the following libraries installed on your linux machine:

  • libpcre
  • libpcreposix
  • libkrb5
  • libk5crypto
  • libcom_err

When building locally, you will also need development packages for kerberos and pcre, so both of these utilities must be present on your machine:

  • pcre-config
  • krb5-config

If you are still encountering problems while installing, you should try theBuilding from sourceinstructions.

API examples.

Cloning a repository and reading a file:

var Git = require("nodegit");// Clone a given repository into the `./tmp` folder.Git.Clone("https://github.com/nodegit/nodegit", "./tmp")  // Look up this known commit.  .then(function(repo) {    // Use a known commit sha from this repository.    return repo.getCommit("59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5");  })  // Look up a specific file within that commit.  .then(function(commit) {    return commit.getEntry("README.md");  })  // Get the blob contents from the file.  .then(function(entry) {    // Patch the blob to contain a reference to the entry.    return entry.getBlob().then(function(blob) {      blob.entry = entry;      return blob;    });  })  // Display information about the blob.  .then(function(blob) {    // Show the path, sha, and filesize in bytes.    console.log(blob.entry.path() + blob.entry.sha() + blob.rawsize() + "b");    // Show a spacer.    console.log(Array(72).join("=") + "\n\n");    // Show the entire file.    console.log(String(blob));  })  .catch(function(err) { console.log(err); });

Emulating git log:

var Git = require("nodegit");// Open the repository directory.Git.Repository.open("tmp")  // Open the master branch.  .then(function(repo) {    return repo.getMasterCommit();  })  // Display information about commits on master.  .then(function(firstCommitOnMaster) {    // Create a new history event emitter.    var history = firstCommitOnMaster.history();    // Create a counter to only show up to 9 entries.    var count = 0;    // Listen for commit events from the history.    history.on("commit", function(commit) {      // Disregard commits past 9.      if (++count >= 9) {        return;      }      // Show the commit sha.      console.log("commit " + commit.sha());      // Store the author object.      var author = commit.author();      // Display author information.      console.log("Author:\t" + author.name() + " <" + author.email() + ">");      // Show the commit date.      console.log("Date:\t" + commit.date());      // Give some space and show the message.      console.log("\n    " + commit.message());    });    // Start emitting events.    history.start();  });

For more examples, check the examples/ folder.

Unit tests.

You will need to build locally before running the tests. See above.

npm test

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap