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