Wie kann ich einen Ordner aus GitHub ziehen (vielleicht auch pushen )?
Ich meine, ich brauche API für .NET, um in C # zuzugreifen, nicht GUI für Git.
Wie kann ich einen Ordner aus GitHub ziehen (vielleicht auch pushen )?
Ich meine, ich brauche API für .NET, um in C # zuzugreifen, nicht GUI für Git.
Antworten:
Ich habe gerade Folgendes gefunden: http://www.eqqon.com/index.php/GitSharp
GitSharp ist eine Implementierung von Git für das Dot.Net Framework und Mono. Es soll vollständig mit dem ursprünglichen Git kompatibel sein und soll eine leichte Bibliothek für coole Anwendungen sein, die auf Git als Objektdatenbank basieren oder Repositorys auf irgendeine Weise lesen oder bearbeiten ...
Was ich jedoch getan habe, ist, eine einfache Klassenbibliothek zu schreiben, um Git-Befehle durch Ausführen eines untergeordneten Prozesses aufzurufen.
Erstellen Sie zunächst eine ProcessStartInfo für eine Konfiguration.
ProcessStartInfo gitInfo = new ProcessStartInfo();
gitInfo.CreateNoWindow = true;
gitInfo.RedirectStandardError = true;
gitInfo.RedirectStandardOutput = true;
gitInfo.FileName = YOUR_GIT_INSTALLED_DIRECTORY + @"\bin\git.exe";
Erstellen Sie dann einen Prozess, um den Befehl tatsächlich auszuführen.
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();
Es liegt dann an Ihnen, jetzt einen beliebigen Befehl aufzurufen.
Wie James Manning in einem Kommentar in der aktuell akzeptierten Antwort erwähnt hat, ist die Bibliothek libgit2sharp ein aktiv unterstütztes Projekt, das eine .NET-API für Git bereitstellt.