Ich versuche ein git pull / push mit jgits api mit dem folgenden Code zu machen
%Vor%aber ich bekomme Ausnahmen
%Vor%Auch wenn cgit verwendet wird, ziehen und drücken funktioniert.
Ich habe versucht, SO zu überprüfen, zum Beispiel Code
Java-Git-Client, der jgit verwendet
aber die obige Frage bietet kein vollständiges codiertes Beispiel dessen, was notwendig ist, um einen Git-Pull mit einem Remote-Repo durchzuführen, der normalerweise über SSH-Schlüssel authentifiziert wird. Es sollte eine Möglichkeit geben, die Anmeldeinformationen von ~/.ssh/
oder den entsprechenden Fenstern zu erhalten.
Das Problem ist, dass Jsch ssh-agent
s nicht standardmäßig unterstützt. Man muss Ссылка konfigurieren, damit es funktioniert.
Alternativ können Sie Ihre eigene org.eclipse.jgit.transport.CredentialsProvider
erstellen und die org.eclipse.jgit.transport.CredentialItem
auf die korrekten Werte setzen (indem Sie sie vom Benutzer anfordern oder nach einer Datei suchen). Sie können den Standardwert CredentialsProvider
mit org.eclipse.jgit.transport.CredentialsProvider/setDefault
Siehe meine clojure Bibliothek dj für Details: Ссылка
Jsch erkennt Ihre SSH-Schlüssel automatisch, schlägt jedoch fehl, wenn diese durch ein Passwort geschützt sind. Sie müssen die Passphrase über einen CredentialsProvider wie folgt angeben:
%Vor%Ich erinnere mich vage daran, einen Fehler mit JSch zu bekommen, der mich für eine Weile blockiert hat, weil das Protokoll nicht sehr explizit war. Ich kann nicht sicher sagen, dass es das gleiche Problem ist, aber ich folgte dieser Seite, um mein Problem zu lösen:
(aufgrund einer falschen Netzwerkkonfiguration)