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

我曾经在我的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) 

任何人都知道如何解决这个问题?

编辑 :截至2016年3月,以更新包裹等。

Cygwin的gitk和git gui需要X11。 这意味着您需要安装一些Cygwin X11软件包并将其设置为可以打开GUI。

这应该让你启动并运行:

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

每次重新启动计算机时都需要重复步骤3,每次打开一个新的Cygwin shell时(或者运行echo "export DISPLAY=:0.0" >>~/.profile使其每当自动运行时你创build一个新的shell)。

在评论中,似乎有人得到错误,指出“无法连接到显示器”:0.0“。 如果你这样做,把鼠标放在应该出现在系统托盘中的X上(如果X图标已经隐藏,你可能需要点击小图标)。 popup标题应该说“Cygwin / X服务器:1.0”。 在步骤4中使用“:1.0”(或任何你看到的)作为DISPLAY的值,而不是“:0.0”,确保包含冒号。

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

感兴趣的是,X11软件包没有自动安装的原因是它们并不是技术上需要的 :在安装“xinit”软件包的时候,可能通过一些令人费解的手段来使用不同于Cygwin安装的X11服务器。

花了更多的时间比我不想承认,我设法find一个工作的解决scheme,从我的cygwin shell执行gitk 。 我不能得到任何启动X服务器的指示,以可靠的工作,最后,解决scheme是非常简单的。

最大的警告是需要安装Windows的Git,下载可以在这里find。

现在整个运行gitk部分。 Git for windows包括一个cmd文件夹,它有一个gitk.cmd windows命令文件。 这就是所有你需要打电话打开gitk

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

在我的系统上,Gitpath在“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" } 

希望这可以帮助别人试图把这件事情弄清楚。

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

要么

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

在我的情况

避免X11并添加git gui支持cygwin

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

  1. 为Windows安装Git(非cygwin) http://git-scm.com/download/win
  2. 打开它的命令shell C:\Program Files (x86)\Git\Git Bash
  3. 运行git gui

(可选)如果你想留在cygwin启动git gui ,添加一个函数在你的~/.bashrc来做到这一点。 唯一需要注意的是, 不要因为recursion和混淆参数命名函数git ,而且您是Git for Windows shell的事实也可能在启动时添加相同的函数。 您也可能遇到path问题,因此请小心正确设置path。

 # 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 

在遵循me_and和tititou36给出的4个步骤之后,在启动XwinServer之后,XWin可能仍然存在问题。

原因是它依赖于主机CygWinterminal/控制台,如果没有CygWin控制台Xwin死亡。

解决scheme是:

启动一个Cygwin控制台。 (你可以通过把mintty命令放到你的cygwin home目录下的.startxwinrc文件中来自动启动它。

这是什么对我有用:

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

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

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

接下来为git gui创build一个到windows字体文件夹的链接来使用

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

closurescygwinterminal,然后再打开,然后input

startxwin &> /dev/null &

git gui &

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