我想做相当于
git checkout -- file
的操作来放弃尚未暂存提交的文件中的更改。
我已经看到了关于如何从特定提交签出的问题,但是我不想指定任何特定提交或分支。
在下面的代码中,
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));
}
我已经看到了有关如何从特定提交签出的问题,但是我不想指定任何特定提交或分支。
您必须指定要结帐的内容。 如果你想模拟
git checkout -- file
,那么你可以简单地使用 HEAD
分支。 例如:
repo.checkoutPaths(repo.Head, new string[] { filePath }, checkoutOptions);
2024 年以下内容对我有用:
repository.CheckoutPaths( "HEAD", paths );