git - 无法在 Windows 上使用 Cygwin 启动 Git GUI

标签 git cygwin tcl x11 tk-toolkit

我曾经发射 Git GUI在我的 Cygwin 控制台中没有任何问题,但是自从我更新了 Cygwin 之后,我收到了以下错误消息:

$ 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)

我该如何解决这个问题?

最佳答案

Cygwin 的 gitk 和 Git GUI 需要 X11。这意味着您需要安装一些 Cygwin X11 软件包并设置它们才能打开 GUI。

这应该让您启动并运行:

  1. 再次运行 Cygwin 安装程序(如果需要,请再次下载相关的 setup-*.exe)。
  2. 在软件包列表中,选择安装 X11 类别下的“xinit”。单击下一步,接受所有依赖项,然后安装。
  3. 在 Windows 开始菜单中,您应该有一个新组:Cygwin-X。从那里运行 XWin 服务器。
  4. 在您的 Cygwin shell 中,运行 export DISPLAY=:0.0

每次重新启动计算机时都需要重复第 3 步,每次打开新的 Cygwin shell 时都需要重复第 4 步(或者只运行 echo "export DISPLAY=:0.0">>~/.profile 让它在您创建新 shell 时自动运行)。

在评论中,似乎有些人收到错误消息“无法连接显示“:0.0””。如果你明白了,将鼠标悬停在本应出现在系统托盘中的 X 上(如果 X 图标已被 stash ,你可能需要单击向上的小图标); pop 窗口标题应显示类似“Cygwin/X Server:1.0”的内容。在第 4 步中使用“:1.0”(或您看到的任何内容)作为 DISPLAY 的值,而不是“:0.0”,确保包含冒号。

如果您在启动 X 服务器时遇到任何其他问题,您可能会发现您有一个名为 ~/.xsession-errors 的文件;查看其中的内容,了解出了什么问题。还要检查您是否有 ~/.startxwinrc 文件,然后尝试删除它并查看是否可以解决问题。

感兴趣的是,X11 包没有自动安装的原因是它们是 not technically needed : 有可能通过一些复杂的方式使用与安装“xinit”包时 Cygwin 安装的 X11 服务器不同的 X11 服务器。

关于git - 无法在 Windows 上使用 Cygwin 启动 Git GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9393462/

相关文章:

tcl - 如何从tcl中的字符串中剪切子字符串

tcl - 在 tcl/tk 子窗口中,我无法为我的条目小部件设置默认值

c# - 删除 GIT 中的一些提交

bash - 在数百万个 csv 文件上运行 bash 脚本

unix - 如何向 cygwin 添加命令 - npm

UNIX 有效密码

tcl - 如何从 tcl 中的文件中提取特定值

git - 如何安全地更改github账户名?

ruby-on-rails - Rails : . gitignore 仍在跟踪我的 database.yml 文件

git - EC2 无法通过 SSH 连接到 github