it-swarm.com.de

TortoiseGit Problem: Beendigungscode 128

Hier ist ein kleiner Hintergrund:

  1. Ich starte Win7
  2. Ich habe privates Git Repo und installierte Github für Windows
  3. Der Github für Windows-Client hat mir nicht gefallen (mangelnde Fähigkeiten). Ich habe TortoiseGit für Windows installiert (behalten Sie immer Github für Windows)
  4. Ich habe hier die Schritte genau befolgt http://dancingmonkeysaccelerated.blogspot.com/2012/03/git-for-windows-with-tortoisegit-and.html
  5. Ich kann mich lokal anmelden und mich anmelden

enter image description here

  1. Dann drücke ich

enter image description here

  1. Es gab jedoch Fehler git did not exit cleanly (exit code 128) 

enter image description here

Ich habe diesen Thread gelesen:

Wie löse ich den Fehler "git wurde nicht sauber beendet (Beendigungscode 128)" bei TortoiseGit?

Und tatsächlich wurde der SSH-Schlüssel geändert, indem Puttygen bereits DREI mal ausgeführt wurde. Ich habe auch volle Berechtigung für Benutzer in dem Ordner festgelegt. Nichts funktioniert!!

Folgendes sehe ich in Environment Path

PATH = (andere); C:\Benutzer\Benutzername\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\libexec\git-core;

GIT_SSH = C:\Programme\TortoiseGit\bin\TortoiseGitPLink.exe

SVN_SSH = C:\Programme\TortoiseGit\bin\TortoiseGitPLink.exe

SSH_ASKPASS = C:\Programme\TortoiseGit\bin\SshAskPass.exe

GIT_ASKPASS = C:\Programme\TortoiseGit\bin\SshAskPass.exe

Allerdings: Wenn ich Github for Windows verwende, funktioniert es gut.

Kann mir jemand eine Anleitung geben, um dieses TortoiseGit-Problem zu beheben?

6
HP.

Ich glaube, ich habe eine bessere Alternative für Windows gefunden: http://www.syntevo.com/smartgithg/index.html

Es hat bis jetzt gearbeitet. Aber ich bevorzuge TortoiseGit, wenn es funktioniert.

0
HP.

Allgemeine Antwort

Bei jeder Ausführung von git.exe wird ein Beendigungscode zurückgegeben (vgl. Gibt git bestimmte Rückgabefehlercodes zurück? ). Ein Beendigungscode von 0 zeigt den Erfolg an. In dem StackOverflow-Beitrag wird der Exit-Code 128 erwähnt, der auf einen Fehler hinweist. Der Exit-Code 128 ist eine Art "unerwarteter Fehler" (vgl. Https://stackoverflow.com/a/8059956/3906760 ). Was es bedeutet, hängt stark von dem ausgeführten git-Befehl und der ausgegebenen Ausgabe ab. Daher kann es keine einfache und kurze Antwort darauf geben, wie Sie dieses Problem lösen können.

Der folgende Beitrag enthält eine spezifische Antwort, die sich auf den Push-Fall bezieht, und am Ende eine allgemeinere Antwort (Abschnitt "Wenn dies nicht hilft").


Antworten Sie auf den Fall des ersten Stackoverflow-Beitrags

Die folgende Antwort basiert auf der Tatsache, dass git.exe ausgeführt wurde, um einen Push auszuführen.

TortoiseGit mit SSH verwenden

Hier muss zwischen OpenSSH und PuTTY unterschieden werden. (Siehe https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html#tgit-dug-settings-network )

OpenSSH

Um OpenSSH verwenden zu können, müssen Sie ssh.exe als "SSH-Client" in den TortoiseGit-Einstellungen -> Netzwerk festlegen. OpenSSH verwendet standardmäßig %HOME%/.ssh/id_rsa(.pub)-Dateien für ihre öffentlichen/privaten Schlüssel, die von OpenSSH ssh-keygen und nicht von PuTTYGen erstellt werden müssen (PuTTY-Schlüssel haben ein anderes Format, können jedoch auch mit PuTTYGen konvertiert werden). Wenn %HOME% nicht festgelegt ist, setzt TortoiseGit die Einstellung automatisch. Wenn Sie %HOME% manuell festlegen, stellen Sie sicher, dass sie gültig ist (möglicherweise müssen Sie anstelle von umgekehrten Schrägstrichen Schrägstriche verwenden).

Dies wird für Personen empfohlen, die bereits über OpenSSH-Schlüssel verfügen.

Kitt

PuTTY, das unter Windows zu bevorzugen ist, erfordert, dass öffentliche/private Schlüssel mit PuTTYGen (das mit TortoiseGit geliefert wird) erstellt werden. TortoiseGitPlink.exe muss als ssh-Client in den TortoiseGit-Einstellungen ausgewählt werden -> Netzwerk - dies sollte der Standard sein. Es gibt jedoch keinen Standardplatz für die öffentlichen/privaten Schlüssel. Daher müssen diese konfiguriert werden . Es gibt (mindestens zwei Möglichkeiten, dies zu tun):

  1. Konfigurieren Sie Ihren Schlüssel als Standardschlüssel in PuTTY-basierten Anwendungen. Öffnen Sie dazu PuTTY (das nicht mit TortoiseGit ausgeliefert wird und gesondert heruntergeladen sein muss). Gehen Sie dann auf die Konfigurationsseite Connection-> SSH-> Auth und wählen Sie Ihre PPK-Datei als "Privater Schlüssel für die Authentifizierung" aus. Gehen Sie zurück zur Konfigurationsseite "Session", wählen Sie dort "Default Settings" aus und klicken Sie auf "Speichern". -> Ab sofort verwenden PuTTY und PLink diesen Schlüssel zur Authentifizierung.

  2. Damit TortoiseGit einen privaten Schlüssel für die Verwendung mit PuTTY laden kann, muss dieser konfiguriert werden. Für ein vorhandenes Repository: Wählen Sie ein Repository aus, öffnen Sie TortoiseGit-Einstellungen -> Remote und wählen Sie dort Ihre Remote-Repository-Konfiguration aus (normalerweise "Origin"). Wählen Sie dann Ihren privaten PPK-Schlüssel aus und klicken Sie auf "Neu hinzufügen/Speichern". Für ein neues Repository kann der Schlüssel beim Klonen ausgewählt werden. Beim Drücken von/Ziehen vergewissern Sie sich, dass "Autoload PuTTY key" aktiviert ist.

Weitere Tipps/Tricks zur Verwendung von PuTTY: https://tortoisegit.org/docs/tortoisegit/tgit-ssh-howto.html

Wenn das nicht hilft

Zunächst einmal müssen wir sicherstellen, dass der richtige git.exe aufgerufen wird - normalerweise sollte dies der Fall sein, da TortoiseGit beim ersten Start nach dem richtigen git.exe auf dem System sucht. Dies kann leicht über die TortoiseGit-Einstellungen -> Allgemein vorgenommen werden. Dort sollte man prüfen, ob "git.exe Path" auf den richtigen Ordner von "Git für Windows" verweist (in muss auf den Ordner "Bin" der Git für Windows-Installation zeigen, nicht auf den Ordner "cmd" - dies sollte jedoch automatisch geschehen) msysgit (die Entwicklungsversion von "Git für Windows") verwendet wird, ist es erforderlich, dass sich der [MSYSGIT-INSTALL-PATH]\mingw\bin-folder auf dem Pfad befindet (dh in das Textfeld Extern DLL Path) eingetragen ist, um git.exe auszuführen (andernfalls) erforderliche .dll-Dateien) können nicht gefunden werden. (Siehe https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html )

Klicken Sie nun auf "Jetzt prüfen" und prüfen Sie, ob neben der Schaltfläche die richtige Versionsnummer angezeigt wird (keine Fehlermeldung). Wenn dies funktioniert, sollte git.exe korrekt konfiguriert sein und mit https arbeiten.

2
MrTux

Ich hatte das gleiche Problem und habe es auf folgende Weise gelöst ...

Ich habe das NVIDIA "Tegra Android Development Pack" installiert und es scheint auch eine Version von mysysgit.exe damit zu haben. TortoiseGit hat diesen Installationsort (anstelle der Standardinstallation von git) automatisch gefunden und im Einstellungsmenü automatisch aufgefüllt.

Um dies zu korrigieren, gehen Sie zu "Einstellungen -> Allgemein" und es gibt ein Feld für den Pfad zu mysysgit.exe. Stellen Sie sicher, dass dies auf die korrekte Installation verweist.

1
roadrunner

In meinem Fall habe ich das Commit (Opfer von do-not-exit-cleanly) von Git Bash abgegeben. Und versuchte das nächste Commit von Tortoise, das funktionierte!

0
Sujit

Ich gehe hier:Systemsteuerung -> Anmeldeinformations-Manager

 enter image description here

und entfernen oder bearbeiten Sie Ihr Passwort.

0
Morteza Pouladi