我曾经在我的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)
有谁知道如何解决这个问题?
答案 0 :(得分:121)
修改:2016年3月更新,以考虑重命名的套餐等。
Cygwin的gitk和git gui需要X11。这意味着您需要安装一些Cygwin X11软件包并进行设置以便能够打开GUI。
这应该让你起步并运行:
export DISPLAY=:0.0
。每次重新启动计算机时都需要重复步骤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(谁不想?):
C:\Program Files (x86)\Git\Git Bash
git gui
(可选)如果您希望留在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的gitk
和git gui
。换句话说,从cygwin卸载git-gui和gitk软件包(如果已安装)。然后which gitk
应该指向Windows文件,而不是/usr/bin
中的cygwin二进制文件。