有没有办法使用.NET应用程序使用git?

时间:2011-03-25 12:09:58

标签: c# .net git

如何从GitHub (也许推送)某个文件夹?

我的意思是我需要用于.NET的API才能在C#中访问,而不是GUI用于git。

3 个答案:

答案 0 :(得分:45)

然而,我所做的是编写一个简单的类库,通过运行子进程来调用git命令。

首先,为某些配置创建ProcessStartInfo。

ProcessStartInfo gitInfo = new ProcessStartInfo();
gitInfo.CreateNoWindow = true;
gitInfo.RedirectStandardError = true;
gitInfo.RedirectStandardOutput = true;
gitInfo.FileName = YOUR_GIT_INSTALLED_DIRECTORY + @"\bin\git.exe";

然后创建一个实际运行命令的进程。

Process gitProcess = new Process();
gitInfo.Arguments = YOUR_GIT_COMMAND; // such as "fetch orign"
gitInfo.WorkingDirectory = YOUR_GIT_REPOSITORY_PATH;

gitProcess.StartInfo = gitInfo;
gitProcess.Start();

string stderr_str = gitProcess.StandardError.ReadToEnd();  // pick up STDERR
string stdout_str = gitProcess.StandardOutput.ReadToEnd(); // pick up STDOUT

gitProcess.WaitForExit();
gitProcess.Close();

现在由你来调用任何命令。

答案 1 :(得分:38)

正如James Manning在当前接受的答案中的评论中所提到的,库libgit2sharp是一个积极支持的项目,为Git提供.NET API。

答案 2 :(得分:28)

我刚发现:http://www.eqqon.com/index.php/GitSharp

  

GitSharp 是Dot.Net Framework和Mono的Git实现。它旨在与原始Git完全兼容,并且应该是一个轻量级的库,用于基于Git作为其对象数据库或以某种方式读取或操作存储库的酷应用程序......