C# 如何获取在存储库目录中更改、添加或修改的文件

C# 如何获取在存储库目录中更改、添加或修改的文件,c#,libgit2sharp,C#,Libgit2sharp,是否可以从存储库中获取所有更改/添加/删除的文件,然后转移这些文件?如果是,如何进行 我是这样做的: foreach (string file in Directory.GetFiles("dir/repo", "*", SearchOption.AllDirectories)) { repo.Stage(file); } 但是,它并不能满足我的要求,因为我会处理所有未跟踪的文件。但是我想暂存所有修改/添加/删除的文件。您可以使用git命令行工具获取更改/添加/删除的文件列表。只要谷歌

是否可以从存储库中获取所有更改/添加/删除的文件,然后转移这些文件?如果是,如何进行

我是这样做的:

foreach (string file in Directory.GetFiles("dir/repo", "*", SearchOption.AllDirectories))
{
    repo.Stage(file);
}

但是,它并不能满足我的要求,因为我会处理所有未跟踪的文件。但是我想暂存所有修改/添加/删除的文件。

您可以使用git命令行工具获取更改/添加/删除的文件列表。只要谷歌一下,你就会发现很多资源

看看如何运行命令行工具并以字符串形式获取输出:

我想这就是你所需要的

是否可以从存储库中获取所有更改/添加/删除的文件,然后转移这些文件?如果是,如何进行

“使用通配符,卢克!”;-)

repo.Stage(“*”)
将模拟git add--all(来自git:“不仅在工作树有文件匹配的地方更新索引,而且在索引已经有条目的地方更新索引。这将添加、修改和删除索引条目以匹配工作树。”)


请参阅
IndexFixture.cs
中的测试以了解更多的见解。

谢谢您的回复,但这不是我需要的。我发现每个文件都有一个自定义状态,可以使用
repo.RetrieveStatus(“file.txt”)
检索。然后我只需检查状态是否已添加、修改或删除,然后将其暂存。@Alexandre:这个答案对您有帮助吗?