Yeoman 使用 NodeGit 的 Reset,得到常量对象错误
Yeoman using NodeGit's Reset, getting constant object error
第一次使用NodeGit and having issues with the Reset功能。
我正在尝试重置已克隆到 origin/master 的当前 HEAD 的文件夹。
即使我给了它一个目标,它仍然说它仍然是必需的:
Error: Object target is required.
当前代码:
var Reset = nodegit.Reset;
var templateDir = this.templatePath('/folder');
nodegit.Repository.open(templateDir)
.then(function(repo) {
repository = repo;
Reset.reset(repository, templateDir, Reset.TYPE.HARD, {
remoteCallbacks: {
credentials: function(url, userName) {
return nodegit.Cred.sshKeyNew(userName, sshPublicKey, sshPrivateKey, "");
}
}
})
.done(function(repo) {
console.log("reset done");
});
});
templateDir 是使用 Yeoman 的 templatePath 的文件夹的完整路径。
想知道是否有人可以让我深入了解我做错了什么或遗漏了什么。我没有在他们的 Example 文件夹中看到这方面的示例。
我预期的最终结果将等于运行终端中的这个:
git reset --hard origin/master
您可以查看执行硬重置的 test case 作为示例。
要点是 templateDir
是您要重置为的提交对象。你真的不需要 remoteCallbacks
除非你想做一个获取或某种远程操作。
试试这个:
var Reset = nodegit.Reset;
var templateDir = this.templatePath('/folder');
var repository = repo;
nodegit.Repository.open(templateDir)
.then(function(repo) {
repository = repo;
return repository.fetch('origin');
})
.then(function() {
return repository.getBranchCommit('origin/HEAD');
})
.then(function(originHeadCommit) {
return Reset.reset(repository, originHeadCommit, Reset.TYPE.HARD);
})
.done(function(repo) {
console.log("reset done");
});
第一次使用NodeGit and having issues with the Reset功能。
我正在尝试重置已克隆到 origin/master 的当前 HEAD 的文件夹。
即使我给了它一个目标,它仍然说它仍然是必需的:
Error: Object target is required.
当前代码:
var Reset = nodegit.Reset;
var templateDir = this.templatePath('/folder');
nodegit.Repository.open(templateDir)
.then(function(repo) {
repository = repo;
Reset.reset(repository, templateDir, Reset.TYPE.HARD, {
remoteCallbacks: {
credentials: function(url, userName) {
return nodegit.Cred.sshKeyNew(userName, sshPublicKey, sshPrivateKey, "");
}
}
})
.done(function(repo) {
console.log("reset done");
});
});
templateDir 是使用 Yeoman 的 templatePath 的文件夹的完整路径。
想知道是否有人可以让我深入了解我做错了什么或遗漏了什么。我没有在他们的 Example 文件夹中看到这方面的示例。
我预期的最终结果将等于运行终端中的这个:
git reset --hard origin/master
您可以查看执行硬重置的 test case 作为示例。
要点是 templateDir
是您要重置为的提交对象。你真的不需要 remoteCallbacks
除非你想做一个获取或某种远程操作。
试试这个:
var Reset = nodegit.Reset;
var templateDir = this.templatePath('/folder');
var repository = repo;
nodegit.Repository.open(templateDir)
.then(function(repo) {
repository = repo;
return repository.fetch('origin');
})
.then(function() {
return repository.getBranchCommit('origin/HEAD');
})
.then(function(originHeadCommit) {
return Reset.reset(repository, originHeadCommit, Reset.TYPE.HARD);
})
.done(function(repo) {
console.log("reset done");
});