LibGit2Sharp CheckoutPaths()

LibGit2Sharp CheckoutPaths(),git,repository,git-checkout,libgit2,libgit2sharp,Git,Repository,Git Checkout,Libgit2,Libgit2sharp,我做了一次提交(49916…),现在我想将提交的一个文件签出到工作目录中。该文件名为NEW.txt。 如果我打字 Git checkout 49916 NEW.txt 在GitBash中,它创建了一个新的.txt文件,其内容在我的工作目录中 但是我的LibGit2Sharp命令不想工作。我做错了什么 var repo = new Repository(repopath); var checkoutPaths = new[] { "NEW.txt"};

我做了一次提交(49916…),现在我想将提交的一个文件签出到工作目录中。该文件名为NEW.txt。 如果我打字

Git checkout 49916 NEW.txt

在GitBash中,它创建了一个新的.txt文件,其内容在我的工作目录中

但是我的LibGit2Sharp命令不想工作。我做错了什么

       var repo = new Repository(repopath);
       var checkoutPaths = new[] { "NEW.txt"};    
       repo.CheckoutPaths("49916", checkoutPaths);
我阅读了所有关于checkoutpaths函数的文章。但是我不能让它工作。我从LibGit2Sharp签出测试文件中获得了该函数

            repo.CheckoutPaths(checkoutFrom, new[] { path });

运行该代码时会发生什么?它是否运行到完成,但工作目录中没有更改?如果尝试使用
CheckoutModifiers.Force
选项签出,会发生什么情况

CheckoutOptions options = new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force };
repo.CheckoutPaths("49916", checkoutPaths, options);

我也有类似的问题。代码一直运行到完成,但工作目录中没有任何更改。 原因是我的
checkoutPaths
收藏

我传递了相对于应用程序目录的文件路径,而不是相对于存储库本身的路径

例如

错误路径:
Repositories/MyRepo/MyFile.txt

正确路径:
MyFile.txt

除了@jamill的问题之外,在调用CheckoutPaths()之前,您的workdir的状态是什么?文件存在吗?我都测试过了。因此,在文件存在和不存在的情况下。现在这两种情况都起作用了它运行到完成,但工作目录没有更改。你的awnser解决了我的问题。我错过了选择。非常感谢你!!!