Sti*_*cke 67 git x11 cygwin tk-toolkit tcl
我曾经在我的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)
Run Code Online (Sandbox Code Playgroud)
谁知道如何解决这个问题?
me_*_*and 122
编辑: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".使用":1.0"(或任何你看到的)作为DISPLAY
步骤4中的值,而不是":0.0",确保包含冒号.
如果您在启动X服务器时遇到任何其他问题,您可能会发现有一个名为的文件~/.xsession-errors
; 看看那些出错的内容.还要检查您是否有~/.startxwinrc
文件,并尝试删除它,看看是否能解决问题.
对于感兴趣的人来说,X11软件包没有自动安装的原因是它们在技术上并不需要:通过某种复杂的方式可以使用与安装"xinit"软件包时Cygwin安装的X11服务器不同的X11服务器.
花了更多的时间比我想承认的那样,我设法找到一个可以gitk
从我的cygwin shell 执行的工作解决方案.我无法获得启动X服务器可靠工作的任何说明,最后,解决方案非常简单.
最大的警告是需要安装Git for Windows,可以在此处找到下载.
现在为整个运行gitk
部分.Git for windows包含一个cmd文件夹,它有一个gitk.cmd
Windows命令文件.这就是你需要打电话才能gitk
打开的全部内容.
$ [path-to-git]/cmd/gitk.cmd
Run Code Online (Sandbox Code Playgroud)
在我的系统上,Git路径位于"C:\ Program Files(x86)\ Git"中,因此命令如下所示:
$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
Run Code Online (Sandbox Code Playgroud)
在我的〜/ .bash_profile中我添加了一个处理该调用的函数,如下所示:
gitk() {
"/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人试图弄清楚这件事.
小智 6
echo "export DISPLAY=:0.0" >>~/.profile
Run Code Online (Sandbox Code Playgroud)
要么
echo "export DISPLAY=:0.0" >>~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
在我的情况下
避免使用X11并添加git gui
对cygwin的支持
如果你想避免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;
}
Run Code Online (Sandbox Code Playgroud)
完成编辑.bashrc后,请刷新设置:
source ~./bashrc
Run Code Online (Sandbox Code Playgroud)
然后简单地说:
gg
Run Code Online (Sandbox Code Playgroud)