2

希望对 nodegit 有一些帮助。我得到它来检查一个分支(branch-development-modular-alpha-2.0.0):

var cloneRepo = nodegit
.Clone(cloneURL, repoPath, cloneOptions)
.then(function (repo) {
  repo.getBranch('refs/remotes/origin/' + branch).then(function(reference) {
    repo.checkoutRef(reference);

    // Go through repo's submodules
    nodegit.Submodule.foreach(repo, function (submodule) {
      var submoduleName = submodule.name();
      var submoduleURL = submodule.url();
      var submodulePath = repoPath + "/" + submodule.path();

      // Clone the submodule
      nodegit
      .Clone(submoduleURL, submodulePath, cloneOptions)
      .then(function (repo) {
        // TODO: DO SOMETHING.
      })
    })
  })
})

现在我想从同一个分支中提取更改,并且我有类似的东西,但是它没有使用分支的最新更改进行更新。

nodegit
.Repository
.open(path.resolve(__dirname, repoPath))
.then(function (repo) {
  existingRepository = repo;

  return existingRepository.fetchAll(cloneOptions.fetchOpts);
})
.then(function () {
  return existingRepository.mergeBranches('master', 'refs/remotes/origin/' + branch);
})
.catch(function(error) {
  console.log(error);
})

我究竟做错了什么?

4

1 回答 1

0

拉动将是提取+合并。

除了合并将是起源/主人到主人。
或起源/分支到分支。

在您的情况下,nodegitmerge函数调用应该是:

return existingRepository.mergeBranches(branch, 'refs/remotes/origin/' + branch);

正如杰米康塞尔在评论中补充的那样:

我也遇到了那个错误。

最终是因为我也在使用nodegitas 检索分支名称,它给出了类似的东西origin/refs/heads/master而不是 just master

打电话branch.shorthand()给我“ master

于 2018-03-28T04:34:34.383 回答