无法在Windows上使用cygwin启动git gui

时间:2012-02-22 10:57:37

标签: git cygwin tcl x11 tk

我曾经在我的cygwin控制台中启动git gui而没有任何问题,但是因为我更新了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)

有谁知道如何解决这个问题?

7 个答案:

答案 0 :(得分:121)

修改:2016年3月更新,以考虑重命名的套餐等。

Cygwin的gitk和git gui需要X11。这意味着您需要安装一些Cygwin X11软件包并进行设置以便能够打开GUI。

这应该让你起步并运行:

  1. 再次运行Cygwin安装程序(如果需要,请再次下载相关的setup-*.exe)。
  2. 在包列表中,选择在X11类别下安装“xinit”。单击“下一步”,接受所有依赖项,然后安装。
  3. 在Windows“开始”菜单中,您应该有一个新组:Cygwin-X。从那里开始运行XWin Server。
  4. 在您的Cygwin shell中,运行export DISPLAY=:0.0
  5. 每次重新启动计算机时都需要重复步骤3,每次打开一个新的Cygwin shell时都需要重复步骤4(或者只需运行echo "export DISPLAY=:0.0" >>~/.profile使其在创建新shell时自动运行)

    在评论中,似乎有些人收到错误声明“无法连接到显示器”:0.0“'。如果你这样做,将鼠标悬停在系统托盘中应该出现的X上(如果隐藏了X图标,你可能需要点击小图标);弹出标题应该说“Cygwin / X Server:1.0”。在步骤4中使用“:1.0”(或任何你看到的)作为DISPLAY的值,而不是“:0.0”,确保包含冒号。

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

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

答案 1 :(得分:9)

花了更多的时间比我小心承认,我设法找到一个工作解决方案来从我的cygwin shell执行gitk。启动X服务器以便可靠地工作,我无法获得任何指令,最后,解决方案非常简单。

最大的警告是需要安装Git for Windows,可以找到here的下载。

现在整个运行gitk部分。 Git for windows包含一个cmd文件夹,它有一个gitk.cmd windows命令文件。您需要打电话才能打开gitk

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

在我的系统上,Git路径位于" C:\ Program Files(x86)\ Git"所以命令看起来像这样:

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

在我的〜/ .bash_profile中,我添加了一个处理该调用的函数,如下所示:

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

希望这有助于其他人试图解决这个问题。

答案 2 :(得分:6)

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

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

在我的情况下

答案 3 :(得分:6)

避免X11并向cygwin添加git gui支持

如果你想避开X11(谁不想?):

  1. 安装适用于Windows的Git(非cygwin)http://git-scm.com/download/win
  2. 打开命令shell C:\Program Files (x86)\Git\Git Bash
  3. 运行git gui
  4. (可选)如果您希望留在cygwin中启动git gui,请在~/.bashrc中添加一项功能来执行此操作。唯一的警告是不要命名函数git因为递归和参数混淆,以及你是Git for Windows shell的事实也可能在启动时添加相同的函数。您也可能遇到路径问题,因此请注意正确设置路径。

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

    编辑.bashrc后,请刷新设置:

    source ~./bashrc
    

    然后简单地说:

    gg
    

答案 4 :(得分:2)

按照me_and和tititou36给出的4个步骤后,在启动XwinServer后,您可能仍然会遇到XWin问题。

原因是它依赖于CygWin终端/控制台,它是主机,如果没有CygWin控制台,Xwin就会死掉。

解决方法是:

启动Cygwin控制台。 (您可以通过将mintty命令放入cygwin主目录下的文件.startxwinrc来自动启动它。

答案 5 :(得分:2)

这对我有用:

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

从cygwin软件包管理器中,执行以下操作:

安装xorg-server和一些xorg字体,xorg-x11-fonts-Type1特别是

接下来创建一个指向git gui的Windows字体文件夹的链接以使用

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

关闭cygwin终端并再次打开,然后输入

startxwin &> /dev/null &

git gui &

答案 6 :(得分:0)

根据AndrewD的回答:使用cygwin的git,但使用Windows Git的gitkgit gui。换句话说,从cygwin卸载git-gui和gitk软件包(如果已安装)。然后which gitk应该指向Windows文件,而不是/usr/bin中的cygwin二进制文件。