如何获取存储库目录中已更改,添加或修改的文件

时间:2015-04-03 20:21:59

标签: c# libgit2sharp

是否可以从存储库中获取所有已更改/添加/删除的文件,然后暂存这些文件?如果有,怎么样?

我做的是这样的事情:

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

然而,它并不满足我,因为我暂存所有未跟踪的文件。但我想暂存所有修改/添加/删除的文件。

2 个答案:

答案 0 :(得分:2)

  

是否可以从存储库中获取所有已更改/添加/删除的文件,然后暂存这些文件?如果是,怎么样?

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

repo.Stage("*")将模仿git add --all(来自git documentation “不仅更新索引工作树文件匹配的位置,还要更新索引索引已经有一个条目。这会添加,修改和删除索引条目以匹配工作树。“

IndexFixture.cs查看 CanMimicGitAddAll() 测试,获取更多见解。

答案 1 :(得分:-1)

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

看一下如何运行命令行工具并将输出作为字符串输出:

  

How To: Execute command line in C#, get STD OUT results

我认为这就是你所需要的。