[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/nodegit/nodegit/v0.2.1/example/remove-and-commit.js [Back]  [Original]

var nodegit = require('../'),
    path = require('path'),
    fileName = 'newfile.txt';

/**
 * This example deletes a certain file `newfile.txt`, removes it from the git index and
 * commits it to head. Similar to a `git rm newfile.txt` followed by a `git commit`
 * Use add-and-commit.js to create the file first.
**/

var _repository;
var _index;
var _oid;

//open a git repo
nodegit.Repository.open(path.resolve(__dirname, '../.git')).then(function(repo) {
  _repository = repo;
  return repo.openIndex();
}).then(function(index){
  _index = index;
  return _index.read();
}).then(function() {
  //remove the file from the index...
  _index.removeByPath(fileName);
  return _index.write();
}).then(function() {
  return _index.writeTree();
}).then(function(oid) {
  _oid = oid;
  return nodegit.Reference.nameToId(_repository, "HEAD");
}).then(function(head) {
  return _repository.getCommit(head);
}).then(function(parent) {
  var author = nodegit.Signature.create("Scott Chacon", "schacon@gmail.com", 123456789, 60);
  var committer = nodegit.Signature.create("Scott A Chacon", "scott@github.com", 987654321, 90);

  return _repository.createCommit('HEAD', author, committer, "message", _oid, [parent]);
}).then(function(commitId) {
  // the file is removed from the git repo, use fs.unlink now to remove it
  // from the filesystem.
  console.log("New Commit:", commitId.allocfmt());
}).done();

Web Proxy Viewer  |  New URL  |  Original Page