Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测libgit2sharp中挂起的更改?_C#_.net_Libgit2sharp - Fatal编程技术网

C# 如何检测libgit2sharp中挂起的更改?

C# 如何检测libgit2sharp中挂起的更改?,c#,.net,libgit2sharp,C#,.net,Libgit2sharp,在libgit2sharp中,如何检查挂起/未提交的更改?您可以使用repository.Diff.Compare() // ///显示工作目录和索引之间的更改。 /// ///应进行比较的路径(文件或目录)列表。 ///包含工作目录和索引之间的更改的。 公共虚拟树更改比较(IEnumerable path=null) 根本不通过任何路径都会带来所有的变化。以下内容对我很有用: ///DEPRECATED - see comment from @derptastic public bool

在libgit2sharp中,如何检查挂起/未提交的更改?

您可以使用
repository.Diff.Compare()

//
///显示工作目录和索引之间的更改。
/// 
///应进行比较的路径(文件或目录)列表。
///包含工作目录和索引之间的更改的。
公共虚拟树更改比较(IEnumerable path=null)

根本不通过任何路径都会带来所有的变化。

以下内容对我很有用:

///DEPRECATED - see comment from @derptastic
public bool HasUncommittedChanges
{
    get
    {
        using (var repo = new Repository(repositoryRoot))
        {
            RepositoryStatus status = repo.RetrieveStatus();
            return status.IsDirty;
        }
    }
}

感谢@Derptastic提供了到

的链接,以下代码行将提供该文件的文件名和状态

foreach (var item in repo1.RetrieveStatus())
{
  Console.WriteLine(item.FilePath);
  Console.WriteLine(item.State);
}    

您还可以查看
RepositoryStatus status=repo.Index.RetrieveStatus()方法@nemesv中的进一步信息这应该是一个答案。。。它真的很好:)看起来repo.Index.RetrieveStatus()被弃用了,取而代之的是repo.RetrieveStatus()。这给了我关于repo的误报,其中git本身没有发现未提交的更改,但
repo.isDirty
返回true。如果您想从官方文档---
repo.diff.Compare().Count>0
foreach (var item in repo1.RetrieveStatus())
{
  Console.WriteLine(item.FilePath);
  Console.WriteLine(item.State);
}