我正在尝试更新我的本地存储库。
根据文档,执行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”);
虽然这样做我只是认为这不是认真的方式去,必须有某种捷径。
如何简单地将本地存储库与远程存储库(包括所有分支)同步,而无需再次克隆存储库?