gpt4 book ai didi

node.js - Yeoman 使用 NodeGit 的 Reset,得到常量对象错误

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:36 25 4
gpt4 key购买 nike

第一次使用NodeGitReset 有问题功能。

我正在尝试将已克隆的文件夹重置为当前 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");
});

关于node.js - Yeoman 使用 NodeGit 的 Reset,得到常量对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com