javascript - 如何使用提交版本更新本地路径?

标签 javascript git nodegit

我正在尝试将存储库克隆到本地文件系统,然后 checkout 特定的提交。
这就是我所拥有的:

Git.Clone(GIT_REPO_URL, localPath, CLONE_OPTIONS).then((repo) => {
    return repo.getCommit(version).then((commit) => {
        // use the local tree
    });
}).catch((error) => {
    // handler clone failure
});

这很好地克隆了存储库,但我最终得到的本地版本是主版本的当前头,而不是我 checkout 的提交(版本)。

如何更新本地树以匹配此提交?
谢谢。

最佳答案

getCommit不修改本地树;它只是检索脚本中内存中的提交,以便您可以在不修改本地树的情况下使用它。 (例如,如果您想浏览 git 历史记录并进行一些分析,但不需要实际更新本地树来访问文件本身,这将很有用。)

要实际 checkout 特定分支或提交,您需要使用 checkoutBranchcheckoutRef函数,它实际上更新本地工作树。 (请注意它们的描述是如何明确说明的,与 getCommit 不同,后者并没有说它修改了工作三项,因为它实际上并没有这样做)。

关于javascript - 如何使用提交版本更新本地路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652259/

相关文章:

javascript - 如何获取新加载的图像的宽度/自然宽度?

git - 一个分支怎么能同时是 X 提前提交和 Y 延迟提交?

ruby-on-rails - 自从我移到bitbucket以来,在cap部署期间出现权限被拒绝(公钥)

git - Nodegit - 如何暂存和提交文件? (简单的例子!)

javascript - 单击菜单项后禁用菜单关闭/隐藏

javascript - 在 Three.js 中合并纹理网格

node.js - 使用 NodeGit 在存储库中执行 `git clean`

node.js - 运行 npm install 取消构建全局 npm

javascript - 选项卡内容无法正确呈现

git - 忽略对提交的 .gitignore 的更改