本篇文章由:http://xinpure.com/macos-sierra-git-gui-crash-solution/

问题描述

自从升级到 macOS Sierra 10.12 之后,git gui 就间歇性的出现闪退问题

一开始还好,只是偶尔闪退,最近真是越来越频繁了。。。

实在是受不了,今天就抽空找了一下解决方法

闪退报错如下:

2016-11-28 10:30:36.463 Wish[23615:1501726] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [0 nan]'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff7f0407bb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fff937ada2a objc_exception_throw + 48
2 CoreFoundation 0x00007fff7f0bda65 +[NSException raise:format:] + 197
3 QuartzCore 0x00007fff84c09980 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 152
4 QuartzCore 0x00007fff84c09af5 -[CALayer setPosition:] + 44
5 QuartzCore 0x00007fff84c0a14b -[CALayer setFrame:] + 644
6 CoreUI 0x00007fff8a9b0112 _ZN20CUICoreThemeRenderer26MakeOrUpdateScrollBarLayerEPK13CUIDescriptoraPP7CALayer + 1284
7 CoreUI 0x00007fff8a9ac317 _ZN20CUICoreThemeRenderer19CreateOrUpdateLayerEPK13CUIDescriptorPP7CALayer + 1755
8 CoreUI 0x00007fff8a92e4d1 _ZN11CUIRenderer19CreateOrUpdateLayerEPK14__CFDictionaryPP7CALayer + 175
9 CoreUI 0x00007fff8a931185 CUICreateOrUpdateLayer + 221
10 AppKit 0x00007fff7d675623 -[NSCompositeAppearance _callCoreUIWithBlock:options:] + 226
11 AppKit 0x00007fff7cd22a9d -[NSAppearance _createOrUpdateLayer:options:] + 76
12 AppKit 0x00007fff7cf9b143 -[NSScrollerImp _animateToRolloverState] + 274
13 AppKit 0x00007fff7cf5ab79 __49-[NSScrollerImp _installDelayedRolloverAnimation]_block_invoke + 673
14 AppKit 0x00007fff7ce21331 -[NSScrollerImp _doWork:] + 15
15 Foundation 0x00007fff80a3ec88 __NSFireDelayedPerform + 417
16 CoreFoundation 0x00007fff7efc0f44 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
17 CoreFoundation 0x00007fff7efc0bd3 __CFRunLoopDoTimer + 1075
18 CoreFoundation 0x00007fff7efc072a __CFRunLoopDoTimers + 298
19 CoreFoundation 0x00007fff7efb82f1 __CFRunLoopRun + 2081
20 CoreFoundation 0x00007fff7efb7874 CFRunLoopRunSpecific + 420
21 HIToolbox 0x00007fff7e557f6c RunCurrentEventLoopInMode + 240
22 HIToolbox 0x00007fff7e557ca9 ReceiveNextEventCommon + 184
23 HIToolbox 0x00007fff7e557bd6 _BlockUntilNextEventMatchingListInModeWithFilter + 71
24 AppKit 0x00007fff7cc4e5f5 _DPSNextEvent + 1093
25 AppKit 0x00007fff7d35e8eb -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1637
26 Tk 0x00000001047cc285 TkGenerateButtonEvent + 494
27 Tk 0x00000001047cc54d Tk_MacOSXSetupTkNotifier + 395
28 Tcl 0x00000001048be5a8 Tcl_DoOneEvent + 237
29 Tk 0x0000000104726f4f Tk_MainLoop + 33
30 Tk 0x0000000104732a5b Tk_MainEx + 1566
31 Wish 0x000000010470d55a Wish + 9562
32 libdyld.dylib 0x00007fff94089255 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
error: git-gui died of signal 6

解决方法

Google 到一个有效方法

brew install tcl-tk

brew link tcl-tk --force

ln -s $(which wish) "/usr/local/Cellar/git/$git_version/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"

操作也不复杂,主要就是先安装一个新版本 Tcl/Tk

然后使用软链接,将新版本的 Tcl/TK 替换掉 git gui 包里的 旧版本 (最好还是备份一下)

以上就搞定了

参考链接

https://github.com/git/git-scm.com/issues/853#issuecomment-254768237

macOS Sierra Git Gui Crash 解决方法的更多相关文章

  1. 转:git合并冲突解决方法

    git合并冲突解决方法 1.git merge冲突了,根据提示找到冲突的文件,解决冲突 如果文件有冲突,那么会有类似的标记 2.修改完之后,执行git add 冲突文件名 3.git commit注意 ...

  2. Git冲突与解决方法【转】

    本文转载自:https://www.cnblogs.com/gavincoder/p/9071959.html Git冲突与解决方法 1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景 ...

  3. Git冲突与解决方法

    1.git冲突的场景 情景一:多个分支代码合并到一个分支时: 情景二:多个分支向同一个远端分支推送代码时: 实际上,push操作即是将本地代码merge到远端库分支上. 关于push和pull其实就分 ...

  4. git常见问题及解决方法

    简介 由于在git使用过程中会出现各种各样的问题,因此本文将常见的问题记录下来并提供相应的解决方案,方便后续查找. git pull问题: There is no tracking informati ...

  5. MacOS Safari无响应卡死解决方法

    之前也是用的好好的,突然一次进入一个网页就卡死了,强制退出,后面再重新进入Safari都会处于卡死状态,一直找不到解决方法,Safari也不能卸载重装,想着得等到更新系统或者重装系统,今天看到贴吧一个 ...

  6. bower install 报错fatal: unable to access 'https://github.com/angular/bower-angular-touch.git/'类错误解决方法

    bower install时出现很多unable to access 'https://github.com/angular/bower-angular-touch.git/'类似的错误, 方法一:( ...

  7. git冲突时解决方法

    在多人协作中,使用git时有冲突是必然的,当git pull 下来代码的时候会出现  <<<<<<< HEAD这些东西,我也没有详细了解过这些,只是知道删除一 ...

  8. git合并冲突解决方法

    1.git merge冲突了,根据提示找到冲突的文件,解决冲突 如果文件有冲突,那么会有类似的标记 2.修改完之后,执行git add 冲突文件名 3.git commit 注意:没有-m选项 进去类 ...

  9. git没有changId解决方法

    1.git branch work(从最新节点建立分支,相当于将自己的修改备份到新的分支) 2.git reset --hard HEAD~10(强制回滚多个节点) 3.git status 如果显示 ...

随机推荐

  1. [翻译] FreeStreamer 在线流媒体播放

    FreeStreamer https://github.com/muhku/FreeStreamer Introduction FreeStreamer is an audio player engi ...

  2. FFmpeg深入分析之零-基础

    FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒 体基础知识,否则其源代码会非常晦涩难懂.本文将从介绍一些基本的多媒体只是,主要是为研读ffmpeg源代码做准备,比如 ...

  3. python3 urllib.request 网络请求操作

    python3 urllib.request 网络请求操作 基本的网络请求示例 ''' Created on 2014年4月22日 @author: dev.keke@gmail.com ''' im ...

  4. WebService—CXF整合Spring实现接口发布和调用过程

    一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId> ...

  5. 提高你开发效率的十五个 Visual Studio 使用技巧

    相信做开发的没有不重视效率的.开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS.能够对一个IDE产生依赖,说明这个IDE确实 有它的独特之处.无容置疑,VS是一个非常强大的IDE,它支持 ...

  6. PHP实战 新闻管理系统 使用到了bootstrap框架

    刚刚接触 PHP 仿照视频 写了个新闻管理系统 当中也使用到了bootstrap框架 写下来整理一下思路. 这是个非常easy的系统.首先是建立数据库表. mysql>create databa ...

  7. 【Other】希腊诸神大全-中英文名称

    希腊诸神大全-中英文名称 希腊诸神的名字_百度搜索 希腊诸神_百度百科 希腊神话人物名字大全_极客百科 希腊神话人物名称大全 希腊神话中的人物名称大全   希腊神话即口头或文字上一切有关古希腊人的神. ...

  8. android 在UI线程之外处理Bitmap - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接 Processing Bitmaps Off the UI Thread 在UI线程之外处 ...

  9. 我对REST的理解

    1:rest的由来 REST即表述性状态传递(英文:Representational State Transfer,简称REST) 通俗点说:资源在网络中以某种表现形式进行状态转移. 源于REST之父 ...

  10. Java 实例 - 队列(Queue)用法

    队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作. LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用. 以下实例演示了队 ...