Die Git-GUI kann nicht mit Cygwin unter Windows gestartet werden

Lesezeit: 7 Minuten

Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
Stijn Vanpoucke

Früher habe ich gestartet Git-GUI innerhalb meiner Cygwin-Konsole ohne Probleme, aber seit ich Cygwin aktualisiert habe, bekomme ich folgende Fehlermeldung:

$ git gui
Application initialization failed: no display name and no $DISPLAY environment variable
Error in startup script: invalid command name "tk_messageBox"
    while executing
"tk_messageBox  -icon error  -type ok  -title "git-gui: fatal error"  -message $err"
    invoked from within
"if {[catch {package require Tcl 8.4} err]
 || [catch {package require Tk  8.4} err]
} {
        catch {wm withdraw .}
        tk_messageBox 
                -icon error 
                -typ..."
    (file "/usr/lib/git-core/git-gui" line 34)

Wie kann ich das lösen?

  • Sie könnten erwägen, zu starten Git für Windows , das eine Git-GUI bereitstellt und stattdessen eine separate Nicht-Cygwin/Msys-Shell verwendet. Sie müssen nur Ihre Cygwin/Windows-Pfade beachten, damit Cygwin nicht versucht, sie anstelle der Cygwin-Version zu verwenden, was einige Probleme verursachen kann.

    – AndreasD

    10. Februar 15 um 20:25 Uhr


  • @AndrewD Die Kombination von Git für Windows mit Cygwin wird ein PITA sein: Unterschiedliche Dateinamenskonventionen und sogar unterschiedliche Home-Verzeichnisse (normalerweise), sodass Sie zwei Sätze von Git-Einstellungen verwalten müssen.

    – Werkzeugfälscher

    20. September 19 um 8:51 Uhr

Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
ich und

Cygwins gitk und Git GUI erfordern X11. Das bedeutet, dass Sie einige der Cygwin X11-Pakete installieren und einrichten müssen, um die GUI öffnen zu können.

Dies sollte Sie zum Laufen bringen:

  1. Führen Sie das Cygwin-Installationsprogramm erneut aus (laden Sie die entsprechende setup-*.exe bei Bedarf noch einmal).
  2. Wählen Sie in der Paketliste die Installation von „xinit“ unter der X11-Kategorie aus. Klicken Sie auf Weiter, akzeptieren Sie alle Abhängigkeiten und installieren Sie.
  3. Im Windows-Startmenü sollten Sie eine neue Gruppe haben: Cygwin-X. Führen Sie von dort aus XWin Server aus.
  4. Führen Sie in Ihrer Cygwin-Shell aus export DISPLAY=:0.0.

Sie müssen Schritt 3 jedes Mal wiederholen, wenn Sie Ihren Computer neu starten, und Schritt 4 jedes Mal, wenn Sie eine neue Cygwin-Shell öffnen (oder einfach nur ausführen echo "export DISPLAY=:0.0" >>~/.profile damit es automatisch ausgeführt wird, wenn Sie eine neue Shell erstellen).

In den Kommentaren scheinen einige Leute Fehlermeldungen zu erhalten, die besagen, dass keine Verbindung zur Anzeige von „:0.0“ hergestellt werden konnte. Wenn Sie das bekommen, fahren Sie mit der Maus über das X, das in Ihrer Taskleiste erscheinen sollte (Sie müssen möglicherweise auf das kleine Aufwärts-Symbol klicken, wenn das X-Symbol ausgeblendet wurde); der Popup-Titel sollte so etwas wie “Cygwin/X Server:1.0” lauten. Verwenden Sie das “:1.0” (oder was auch immer Sie sehen) als Wert für DISPLAY in Schritt 4 anstelle von “:0.0” und achten Sie darauf, den Doppelpunkt einzuschließen.

Wenn Sie irgendwelche anderen Probleme beim Starten des X-Servers haben, werden Sie wahrscheinlich feststellen, dass Sie eine Datei namens ~/.xsession-errors; Überprüfen Sie den Inhalt davon, was schief läuft. Überprüfen Sie auch, ob Sie eine haben ~/.startxwinrc Datei, und versuchen Sie, sie zu löschen und zu sehen, ob das Problem dadurch behoben wird.

Für die Interessierten, der Grund, warum die X11-Pakete nicht automatisch installiert werden, ist, dass sie es sind technisch nicht notwendig: Es ist mit etwas komplizierten Mitteln möglich, einen anderen X11-Server zu verwenden als den, den Cygwin installiert, wenn Sie das “xinit”-Paket installieren.

  • Das Look and Feel ist nicht mehr das, was es einmal war, aber zumindest funktioniert es wieder. Danke!

    – Stijn Vanpoucke

    24. Februar 2012 um 08:01 Uhr

  • @Stijn: Einverstanden. Ich habe auch die alte Oberfläche bevorzugt (nicht zuletzt, weil ich ein benutzerdefiniertes Windows-Tastaturlayout habe, das X11 nicht verstehen kann). Der Begründung für die Änderung ist, dass Tcl/Tk (die Sprache, auf der Git GUI und Gitk usw. ausgeführt werden) auf X11 verschoben wurde. Um also nicht mit einem veralteten Tcl/Tk hängen zu bleiben, musste Cygwin die gleiche Änderung vornehmen.

    – ich und

    24. Februar 12 um 9:41 Uhr

  • Ich habe die folgende Zeile zu meinem Bash-Profil hinzugefügt, um Schritt 3 nicht jeden Tag ausführen zu müssen. Wenn dies auch für Sie funktioniert, möchten Sie möglicherweise die Antwort bearbeiten. “startxwin >/dev/null 2>&1 &”

    – Mark F. Guerra

    18. Mai ’12 um 14:17 Uhr


  • Haben Sie eine Möglichkeit gefunden, das xterm automatisch auszublenden, wenn Sie den XWin-Server starten?

    – Stijn Vanpoucke

    12. Juni 12 um 8:50 Uhr

  • @StijnVanpoucke: Ja: laufen touch ~/.startxwinrc aus einer Bash-Shell. Ich habe das auf Super User vollständig beantwortet: superuser.com/q/435768/21002

    – ich und

    12. Juni 12 um 13:08 Uhr


1643908688 15 Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
AndreasD

Vermeiden Sie X11 und fügen Sie Git GUI-Unterstützung zu Cygwin hinzu

Wenn Sie X11 vermeiden wollen (und wer würde das nicht?):

  1. Installieren Sie Git für Windows (nicht Cygwin) http://git-scm.com/download/win
  2. Öffnen Sie seine Befehlsshell C:Program Files (x86)GitGit Bash
  3. Lauf git gui

(Optional) Wenn Sie in Cygwin bleiben möchten, um die Git-GUI zu starten, fügen Sie eine Funktion in Ihrer hinzu ~/.bashrc es zu tun. Die einzige Einschränkung ist nicht Benennen Sie die Funktion git Aufgrund von Rekursion und Verwirrung mit Argumenten und der Tatsache, dass Sie Git für die Windows-Shell sind, wird beim Start möglicherweise auch dieselbe Funktion hinzugefügt. Sie können auch auf Pfadprobleme stoßen, seien Sie also vorsichtig, wenn Sie Ihre Pfade richtig einrichten.

# Call Git GUI from Git For Windows path with `ggui`
    gg() {
    command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui  2>/dev/null;


    }

Wenn Sie mit der Bearbeitung Ihrer .bashrc fertig sind, aktualisieren Sie Ihre Einstellungen:

source ~./bashrc

und dann einfach:

gg

  • Wenn Sie die Funktion git-gui anstelle von gg nennen, wird sie geöffnet, wenn Sie den Befehl eingeben git gui – git wird das als Erweiterung verwenden.

    – Konfigurator

    9. Januar 17 um 10:07 Uhr

  • Ich habe Git für Windows unter Windows 10 verwendet und für Gitk funktioniert es wie hier beschrieben. Allerdings startet git gui einfach nicht von einem Cygwin-Terminal (im Gegensatz zu git-gui!). Wenn ich einen Befehl wie hier beschrieben mit dem Namen git-gui hinzufüge, funktionieren sowohl git gui als auch git-gui nicht mehr. Für den Fall, dass jemand anderes dieses Problem hat, zumindest funktioniert git-gui (ohne zusätzlichen Befehl in der bashrc).

    – Weinender Schatten

    13. Juni 21 um 13:24 Uhr

1643908689 471 Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
David Kartik

Nachdem ich mehr Zeit aufgewendet hatte, als ich zugeben möchte, gelang es mir, eine funktionierende Lösung für die Ausführung zu finden gitk von meiner Cygwin-Shell. Ich konnte keine der Anweisungen zum Starten des X-Servers zuverlässig zum Laufen bringen, und am Ende war die Lösung ziemlich einfach.

Die größte Einschränkung besteht darin, dass Git für Windows installiert sein muss, den Download dafür finden Sie Hier.

Jetzt für das ganze Rennen gitk Teil. Git für Windows enthält einen cmd-Ordner mit einer gitk.cmd Windows-Befehlsdatei. Das ist alles, was Sie brauchen, um zu telefonieren gitk offen.

$ [path-to-git]/cmd/gitk.cmd

Auf meinem System befindet sich der Git-Pfad in “C:Program Files (x86)Git”, also würde der Befehl so aussehen:

$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"

In meinem ~/.bash_profile Datei habe ich eine Funktion hinzugefügt, um diesen Aufruf zu verarbeiten, die so aussieht:

gitk() {
  "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}

Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
titou36

echo "export DISPLAY=:0.0" >>~/.profile

oder

echo "export DISPLAY=:0.0" >>~/.bash_profile

in meinem Fall

1643908689 336 Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
soviel zu lernen und zu teilen

Nachdem Sie die vier Schritte von me_and und tititou36 befolgt haben, haben Sie möglicherweise immer noch Probleme mit dem XWin, der einfach nach dem Start des XwinServers stirbt.

Der Grund dafür ist, dass es sich auf ein Cygwin-Terminal/eine Cygwin-Konsole stützt, die der Host ist, und Xwin stirbt, wenn es keine Cygwin-Konsole gibt.

Die Lösung dafür lautet:

Starten Sie eine Cygwin-Konsole (Sie können sie automatisch starten lassen, indem Sie put mintty Befehl in die Datei .startxwinrc in Ihrem Cygwin-Home-Verzeichnis).

1643908690 852 Die Git GUI kann nicht mit Cygwin unter Windows gestartet werden
Peter Mortensen

Hier ist, was für mich funktioniert hat:

cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"

Gehen Sie im Cygwin-Paketmanager wie folgt vor:

Installieren xorg-server und einige xorg-Fonts, xorg-x11-fonts-Type1 besonders.

Erstellen Sie als Nächstes einen Link zu den Windows-Schriftartenordnern, die von der Git-GUI verwendet werden können:

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts

Schließen Sie das Cygwin-Terminal und öffnen Sie es erneut, und geben Sie dann ein

startxwin &> /dev/null &

git gui &

Basierend auf der Antwort von AndrewD: Verwenden Sie Cygwins nicht gitaber verwenden Sie Windows Gits gitk und git gui. Mit anderen Worten, deinstallieren Sie die git-gui- und gitk-Pakete von Cygwin (falls installiert). Dann which gitk sollte auf die Windows-Datei verweisen, nicht auf die Cygwin-Binärdatei /usr/bin.

  • Meinst du nicht “Nicht benutze Cygwins git…”?

    – Peter Mortensen

    27. März 21 um 16:14 Uhr


.

757970cookie-checkDie Git-GUI kann nicht mit Cygwin unter Windows gestartet werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy