如何从GitHub 拉(也许推送)某个文件夹?
我的意思是我需要用于.NET的API才能在C#中访问,而不是GUI用于git。
答案 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作为其对象数据库或以某种方式读取或操作存储库的酷应用程序......