NodeGit:将分支指针移动到不同的提交而不用checkout

时间:2016-01-08 07:45:36

标签: javascript node.js git

在git中我们可以使用以下命令来实现它:

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

我们如何在nodegit中实现相同的目标?

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

1 个答案:

答案 0 :(得分:1)

您可以尝试重新创建分支,即使它已经存在也会强制创建。

请参阅Repository.prototype.createBranch (lib/repository.js#L28-L39),其中包括:

 @param {bool} force Overwrite branch if it exists

您可以在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!");
  });

如果在该示例中用0替换1,即使已经存在,也会强制创建该分支,从而有效地将其HEAD重置为新提交。