LibGit2Sharp CheckoutPaths() 在不指定分支的情况下恢复文件

问题描述 投票:0回答:2

我想做相当于

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 git-checkout libgit2 libgit2sharp
2个回答
1
投票

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

您必须指定要结帐的内容。 如果你想模拟

git checkout -- file
,那么你可以简单地使用
HEAD
分支。 例如:

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

0
投票

2024 年以下内容对我有用:

repository.CheckoutPaths( "HEAD", paths );

© www.soinside.com 2019 - 2024. All rights reserved.