¿Hay alguna forma de trabajar con git usando la aplicación .NET?

¿Cómo puedo extraer (quizás también presionar ) alguna carpeta de GitHub?

Quiero decir que necesito API para que .NET pueda acceder dentro de C #, no GUI para git.

Acabo de encontrar esto: http://www.eqqon.com/index.php/GitSharp

GitSharp es una implementación de Git para Dot.Net Framework y Mono. Está destinado a ser totalmente compatible con el Git original y debe ser una biblioteca liviana para aplicaciones geniales que se basan en Git como database de objects o que están leyendo o manipulando repositorys de alguna manera …

Sin embargo, lo que he hecho es escribir una libray de class simple para llamar a los commands de git ejecutando el process hijo.

Primero, cree un ProcessStartInfo para alguna configuration.

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

Luego crea un Proceso para ejecutar realmente el command.

 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(); 

Depende de usted llamar ahora a cualquier command.

Como James Manning mencionó en un comentario en la respuesta actualmente aceptada, la biblioteca libgit2sharp es un proyecto apoyado activamente que proporciona una API .NET para Git.