Die Git-GUI kann nicht mit Cygwin unter Windows gestartet werden
Lesezeit: 7 Minuten
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
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:
Führen Sie das Cygwin-Installationsprogramm erneut aus (laden Sie die entsprechende setup-*.exe bei Bedarf noch einmal).
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.
Im Windows-Startmenü sollten Sie eine neue Gruppe haben: Cygwin-X. Führen Sie von dort aus XWin Server aus.
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
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?):
Öffnen Sie seine Befehlsshell C:Program Files (x86)GitGit Bash
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
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:
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).
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:
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
.
7579700cookie-checkDie Git-GUI kann nicht mit Cygwin unter Windows gestartet werdenyes
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