无法在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。
这应该让你启动并运行:
- 再次运行Cygwin安装程序(如果需要,再次下载相关的安装程序 – *。exe )。
- 在软件包列表中,select在X11类别下安装“xinit”。 点击下一步,接受所有的依赖关系,然后安装。
- 在Windows开始菜单中,您应该有一个新的组:Cygwin-X。 从那里运行XWin服务器。
- 在你的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(谁不会?):
- 为Windows安装Git(非cygwin) http://git-scm.com/download/win
- 打开它的命令shell
C:\Program Files (x86)\Git\Git Bash
- 运行
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的gitk
和git gui
。 换句话说,从cygwin中卸载git-gui和gitk包(如果已安装)。 然后which gitk
应该指向Windows文件,而不是/usr/bin
的cygwin二进制文件。