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