【发布时间】:2017-02-11 12:53:29
【问题描述】:
更新到 macOS Sierra 后,git-gui 命令崩溃并出现错误:
有没有人有同样的问题和解决方案?
【问题讨论】:
-
这个应该迁移到apple.SE吗?
-
注意,现在在 macOS10.12.2 及更高版本中已解决。
-
请注意,这在 10.14.5 中再次被破坏
更新到 macOS Sierra 后,git-gui 命令崩溃并出现错误:
有没有人有同样的问题和解决方案?
【问题讨论】:
尝试:
git config --local --unset gui.geometry
此错误是由于 Tk 几何管理器无法工作、旧版本或损坏所致。
如果上述命令不起作用,请尝试更新您的 xcode:
xcode-select --install
【讨论】:
xcode-select --install 编辑
不要使用默认的 MacOS tcl-tk,而是使用 Homebrew 的最新 tcl-tk(8.6.6),然后强制链接,例如:
brew install tcl-tk
brew link tcl-tk --force
【讨论】:
/usr/local/bin 之前有 /usr/bin/。这导致我无法更改gitk 使用的Wish 的版本。
brew install homebrew/dupes/tcl-tk
brew install homebrew/dupes/tcl-tk 不再有效。 homebrew/dupes 已被弃用。
MacOS Sierra 上的 Tk 8.5 存在问题。 您可以将 Tk Wish 8.5 替换为 Tk Wish 8.4
cp /System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish.app/Contents/MacOS/Wish /usr/local/Cellar/git/2.10.1/share/git-gui/lib/Git\ Gui.app/Contents/MacOS/来源:https://github.com/git/git-scm.com/issues/853
UPD:注意将cp路径中的git版本替换为你当前的版本
【讨论】:
cp 命令的目标路径中使用您当前的 git 版本。
我的解决方案应该适用于https://git-scm.com/的git下载
brew install homebrew/dupes/tcl-tk
cd到/usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS并备份原Wish
cp /usr/local/Cellar/tcl-tk/8.6.6/bin/wish8.6 /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish
【讨论】:
我从这里收集了一堆答案,因为我通过 brew 使用 GIT 和 TCL:
cd "/usr/local/Cellar/git/2.10.2/share/git-gui/lib/Git Gui.app/Contents/MacOS"mv Wish Wish.bkpln -vs /usr/local/Cellar/tcl-tk/8.6.6/bin/wish8.6 Wish随着时间的推移,显然版本号可能会有所不同
【讨论】:
我认为以下目标构成了该问题的完整解决方案:
“从轨道上发射核弹”以简洁和线性的方式解决这个问题的确定性
不要以旧版 Apple Tcl/Tk 的丑陋字体告终
将您的 git gui 与 Apple 发布的 Tcl/Tk 分离
您将在下面找到实现此目的的分步操作:
从 Homebrew 获取重复的 Tcl/Tk
brew install tcl-tk
将未损坏的 Tcl/Tk 安装添加到损坏的 Apple 实施之前的路径
the_platinum_searcher 提供pt,这会发生冲突我推荐ripgrep 来解决这个问题
brew link --force tcl-tk
通过针对完整的 Homebrew 版本重新安装来修复您的 gitk 安装
这可能不是必需的,但参考。上述第一个目标
brew reinstall git
从您的 Homebrew Tcl/Tk 安装中复制新的 wish 二进制文件,覆盖来自 Apple 的 Git Gui.app 包中损坏的捆绑文件
这一味依赖homebrew info <package>的输出不改变
cp "$(which wish)" "$(brew info git | grep Cellar | cut -d' ' -f1)/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"
最后一点可能是明智的,将别名添加到您的 ~/.bashrc 和/或等效项中,因为每次您从 Homebrew 获得新的 git 版本时都必须重复它。
alias fix-gitgui='cp "$(which wish)" "$(brew info git | grep Cellar | cut -d" " -f1)/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"'
我不完全确定为什么上面使用的 cut 字段分隔符的引用有效,因此请谨慎使用此别名,因为这很可能取决于确切的 bash 版本。
【讨论】:
【讨论】:
它适用于我:下载并安装最新版本的 TCL(我使用的是 8.6.4) http://www.activestate.com/activetcl/downloads
我还下载并安装了最新版本(2.10.1)的 git https://git-scm.com/
检查 gitk 窗口在调整大小后不会崩溃。
【讨论】:
@sbondaryev 的回答 (39966704) 对我不起作用,我还没有尝试过 @ssahu 的回答 (40119030)。然而,我在这里描述的技巧对我来说崩溃的频率要低得多(大约 10% 的时间)。并且它可以让我避免过多的乱七八糟 - 希望问题能很快得到妥善解决。
vi .git/configGUI geography 以创建一个有效的窗口大小。我仍然保持它很小,尽管我怀疑总会发生崩溃的大小【讨论】:
我的 Sierra(从 10.11.6 升级)的 Tcl/Tk Current 指向 8.5,升级后我观察到同样的错误,我们的 Python 程序使用 Tkinter。我没有使用Wish。链接到 Tcl/Tk 8.4 的 Python 2.7 32 位安装对我没有帮助,因为那个没有“平铺”。所以我酿造了我的 Python,将它与 Tcl/Tk 8.6 链接起来:
这是为了让 brew 使用预编译的瓶子而不是从源代码构建,除非另有明确说明,因此不会真正导致问题:
xcode-select --install
然后安装Tcl/Tk:
brew install homebrew/dupes/tcl-tk
如果您最初没有使用 --with-tcl-tk 安装 Python,那么:
brew uninstall python
最后:
brew install python --with-tcl-tk
在此之后,我有链接到 Tcl/Tk 8.6 的 Python,看起来我摆脱了错误。
【讨论】:
经过很多努力,这个解决方案解决了我的问题:
$ brew upgrade tcl-tk
如果它是最新的并且这不起作用,请尝试:
$ brew uninstall tcl-tk
$ brew install tcl-tk
我已经尝试了网络中的所有解决方案,但只有这样才能解决问题。 干杯!
【讨论】:
此问题已在 macOS Sierra(10.12.2 及更高版本)的最新补丁中得到解决,无需采取进一步措施。
【讨论】:
brew 安装 tcl-tk 并且它有所帮助。
which git 是“/usr/local/bin/git”。
在 High Sierra (10.13) 上,我遇到了与 git gui 相同的问题。
我已经通过将 git 从 2.7.0 更新到 2.14.2 解决了这个问题
brew upgrade git
【讨论】:
对我有用的修复:断开第二台显示器,打开 git gui -> 工作,关闭它,重新连接第二台显示器并运行 git gui -> 再次工作 :)
【讨论】: