Ad

NodeGit: Move Branch Pointer To Different Commit Without Checkout

- 1 answer

In git we can use following command to achieve it:

git branch -f branch-name new-tip-commit

How do we achieve the same in nodegit?

http://www.nodegit.org/api/

Ad

Answer

You can try and re-create the branch, forcing the creation even if it exists already.

See Repository.prototype.createBranch (lib/repository.js#L28-L39), which includes:

 @param {bool} force Overwrite branch if it exists

You can see an example in examples/create-branch.js#L4-L16:

var nodegit = require("../");
var path = require("path");

nodegit.Repository.open(path.resolve(__dirname, "../.git"))
  .then(function(repo) {
    // Create a new branch on head
    return repo.getHeadCommit()
    .then(function(commit) {
      return repo.createBranch(
        "new-branch",
        commit,
        0,
        repo.defaultSignature(),
        "Created new-branch on HEAD");
    });
  }).done(function() {
    console.log("All done!");
  });

If you replace the 0 by a 1 in that example, that would force the creation of that branch even if it already existed, effectively resetting its HEAD to the new commit.

Ad
source: stackoverflow.com
Ad