node.js - 使用 NodeGit 签出特定的提交
问题描述
我有一个 NodeGit 存储库对象,repo
和一个sha
代表提交 id 的字符串代码commit_id
。如何使用 NodeGit 执行此提交的 git checkout,它的作用与命令相同git checkout $commit_id
?
到目前为止,我已经尝试Reference
使用提交 ID 创建一个,然后使用checkoutRef
它来检查参考。但是,存储库没有改变,我得到了错误Error: the given reference name '<my commit id>' is not valid
。
NodeGit.Reference.lookup(repo, commit_id, (reference) => {
repo.checkoutRef(reference)
});
谢谢您的帮助。
解决方案
到目前为止,我发现的唯一解决方案是:
const commit = await repo.getCommit(commit_id);
await nodegit.Reset.reset(repo, commit, nodegit.Reset.TYPE.HARD);
但它太慢了......尤其是对于大型存储库!
推荐阅读
- json - SwiftUI 从 api.city.bik 获取 JSON API 数据
- javascript - 如何从 Azure Maps Route 计算遍历的状态
- python - 将多变量函数应用于 DataFrame 的列
- typescript - 是否可以纯粹使用 TypeScript 为对象创建对象键路径字符串自动完成功能?
- python - 对任何文件的蛮力数字攻击
- vps - 我可以用 Rclone 做一个文件共享网站吗
- javascript - 将数组映射到 UI 不是正确显示元素
- reactjs - 如何使用外挂
- android - 如何从 libc.so、libart.so 修复 Android Native Crash
- python - 使用 Pandas 按年份过滤 CSV 股票