2

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

根据文档,执行 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");

在这样做的同时,我只是认为这不是认真的方法,而且必须以某种方式找到捷径。

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

4

0 回答 0