C# LibGit2Sharp查找拉取后更新/添加/删除的文件

C# LibGit2Sharp查找拉取后更新/添加/删除的文件,c#,git,libgit2sharp,C#,Git,Libgit2sharp,运行repo.Network.Pull()命令后,我希望能够看到哪些文件被添加到存储库中、在存储库中被更改以及从存储库中删除。我只需要文件的文件路径,以及它是添加/更新还是删除 有没有一个简单的方法可以做到这一点?我已经尝试过查看Diff.Compare(),但我不确定这样做是否正确。LibGit2Sharp 0.21.0.176 下面是一个libGit2示例,演示如何遍历当前提交树,并获取更改的文件和更改类型 Git版本: git log --name-status --pretty=onel

运行
repo.Network.Pull()
命令后,我希望能够看到哪些文件被添加到存储库中、在存储库中被更改以及从存储库中删除。我只需要文件的文件路径,以及它是添加/更新还是删除


有没有一个简单的方法可以做到这一点?我已经尝试过查看
Diff.Compare()
,但我不确定这样做是否正确。

LibGit2Sharp 0.21.0.176

下面是一个libGit2示例,演示如何遍历当前提交树,并获取更改的文件和更改类型

Git版本:

git log --name-status --pretty=oneline

1d9d4bb881f97f5d3b67741a893f238e7221e2b1 Updated readme with fork info
M       README.md
58cc5c41963d5ff68556476158c9c0c2499e061c Update Makefile for PE32+ (platform:x64) assemblies
M       Makefile
M       README.md
a7823c1c0a737c5218d33691f98828c78d52130b Fix Makefile for 64-bit native lib and add README.md
M       Makefile
A       README.md
ea7e6722f67569cb9d7a433ff2c036fc630d8561 Update solution files.
M       mono-curses.csproj
M       mono-curses.sln
05dbe6e18895d1037ce333b0a1f652eeae3f8b33 Fix resize handling.
M       attrib.c
M       gui.cs
libGit2版本:

    var repo = new LibGit2Sharp.Repository ("/your/repo/path");
    foreach (Commit commit in repo.Commits) {
        foreach (var parent in commit.Parents) {
            Console.WriteLine ("{0} | {1}", commit.Sha, commit.MessageShort);
            foreach (TreeEntryChanges change in repo.Diff.Compare<TreeChanges>(parent.Tree,
            commit.Tree)) {
                Console.WriteLine ("{0} : {1}", change.Status, change.Path);
            }
        }
    }

在直接回答您的问题时,只需从提交枚举器中获取第一个提交,并将其树与其父级(由于合并,可能不止一个父级)进行比较,而不是我在当前分支中循环所有提交的示例。

可能重复的
Diff.compare
确实是一种方法;-)请查看更多详细信息,如果我拉然后抓取第一个提交,我将如何知道它有多少父级(由于合并)。将提交。父级处理该问题?如果发生合并,提交将有一个或多个父级。i、 这个数组(commit.Parents.Select(p=>p.Id.Sha).ToArray())将包含每个父级的commit的Sha。
1d9d4bb881f97f5d3b67741a893f238e7221e2b1 | Updated readme with fork info
Modified : README.md
58cc5c41963d5ff68556476158c9c0c2499e061c | Update Makefile for PE32+ (platform:x64) assemblies
Modified : Makefile
Modified : README.md
a7823c1c0a737c5218d33691f98828c78d52130b | Fix Makefile for 64-bit native lib and add README.md
Modified : Makefile
Added : README.md
ea7e6722f67569cb9d7a433ff2c036fc630d8561 | Update solution files.
Modified : mono-curses.csproj
Modified : mono-curses.sln
05dbe6e18895d1037ce333b0a1f652eeae3f8b33 | Fix resize handling.
Modified : attrib.c
Modified : gui.cs