LibGit2Sharp CheckoutPaths()以在不指定分支的情况下还原文件

时间:2016-04-16 23:30:54

标签: git git-checkout libgit2 libgit2sharp

我想做相当于git checkout -- file的操作来放弃尚未进行提交的文件中的更改。

我已经看到围绕how to checkout from a specific commit的问题,但是我不想指定任何特定的提交或分支。

在以下代码中,commitishOrBranchSpec的参数似乎是必需的,但不能为null或空字符串;是否有一个可以指定default的值,类似于上面的git命令行中没有指定任何分支或提交?

using (var repo = new Repository(workingDir))
{
    // $TODO: Figure out what to pass for parameter 1,
    // commitishOrBranchSpec (null and "" don't work)
    repo.CheckoutPaths("", Enumerable.Repeat(filePath, 1));
}

1 个答案:

答案 0 :(得分:0)

  

我已经看到了如何从特定提交结帐的问题,但是我不想指定任何特定的提交或分支。

您必须指定要结帐的内容。如果您想模仿git checkout -- file,那么您只需使用HEAD分支即可。例如:

repo.checkoutPaths(repo.Head, new string[] { filePath }, checkoutOptions);