¿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.