2014-03-07 33 views
3

我做了一个提交(49916 .....)现在我想签出一个提交到工作目录的文件。该文件被命名为NEW.txt。 如果键入LibGit2Sharp CheckoutPaths()

的Git结账49916 NEW.txt

到Git的猛砸其创建的NEW.txt,在我的工作目录中的内容文件。

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

 var repo = new Repository(repopath); 
     var checkoutPaths = new[] { "NEW.txt"};  
     repo.CheckoutPaths("49916", checkoutPaths); 

我阅读了每篇关于checkoutpaths函数的文章。但我无法得到它的工作。我从LibGit2Sharp签出测试文件中获得了该函数。

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

除了@ jamill的问题,在调用CheckoutPaths()之前,您的workdir的状态是什么?文件是否存在? – nulltoken

+0

我测试了两个。所以文件存在与否。现在这两种情况都有效:) – JoeLiBuDa

回答

6

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

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

它运行完成,但没有改变工作目录。你的游戏者解决了我的问题。我错过了选项。非常感谢!!! – JoeLiBuDa