如何使用NodeGit拉出所有分支?

时间:2017-11-06 12:29:39

标签: git git-branch git-pull git-fetch nodegit

我正在尝试更新我的本地存储库。

根据文档,执行fetchAll从远程获取所有分支,这是我目前正在做的。没有像 pullAll 那样自动将这些遥控器与我的本地遥控器合并。

我现在的想法是在完成fetchAll之后获取所有分支

 gitUpdate(url, options, repositoryPath, callback) {
        let repository = undefined;
        NodeGit.Repository.open(repositoryPath)
            .then(function (repo) {
                repository = repo;
                return repo.fetchAll(options.fetchOpts);
            })
            .then(function () {
                return repository.getReferenceNames(NodeGit.Reference.TYPE.LISTALL);
            })
            .then(function (branches) {
                /*
                 [ 'refs/heads/test',
                   'refs/heads/master',
                   'refs/remotes/origin/master',
                   'refs/remotes/origin/test' ] 
                */
                return console.log("branches", branches);
            })
            .then(function (fetched) {
                callback(null, fetched);
            }, function (err) {
                callback(err);
            });
    };

然后迭代它们,过滤掉匹配的那些并做一些字符串填充以使它们适合 repository.mergeBranches(“master”,“origin / master”);

虽然这样做我只是认为这不是认真的方式去,必须有某种捷径。

如何简单地将本地存储库与远程存储库(包括所有分支)同步,而无需再次克隆存储库?

0 个答案:

没有答案