Git GUI每次打开存储库时都会崩溃

问题描述 投票:15回答:7

自几天前以来,每次我在存储库中启动Git GUI时,它都会显示此可怕的错误消息,并在单击OK后退出:

prepare-commit-msg hook failed:

      0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x260000, State 0x10000
C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

You must correct the above errors before committing.

仅在Git GUI中发生,并且仅在存储库中(旧的或新创建的)发生。 Git Bash中的常见命令(包括提交)可以正常工作。

卸载并使用较新的软件包重新安装(仅次要版本更改)没有解决问题。无论是旧存储库还是新创建的存储库,都仍然会发生这种情况。

在干净的机器上,这个问题不会重现,所以我想这是我盒子上的东西,但是我不记得安装了什么有趣的东西。我确实记得很长一段时间后关闭了我的盒子,所以也许某些Windows Update可能触发了此操作-这也可以解释为什么另一台计算机没有受到影响-自上次Win更新以来已有2-3个月了。

任何想法如何阐明这一点? (因为我只能在单台机器上看到它,所以我不希望在不知道这不是我/其他应用程序的错误之前将其提交给官方跟踪器...)


<< [Update在第一条评论之后:

  • 如果删除或重命名该钩子脚本,它可以工作吗?

    很有趣,但是钩子脚本实际上根本不存在(没有钩子脚本当前-.git \ hooks中只有* .sample文件)。甚至没有其他地方(git程序目录等)

  • 跟踪它,让您知道它运行了什么命令-从git-bash运行git gui --trace

    可悲的是,这不会向外壳输出任何内容。行为是相同的。

  • 也许在其中获得gdb。

    我尝试过,但是gdb没有输出任何有用的信息。但是,我没有任何经验使用GDB,我可能做错了。我得到了MinGW's gdb,从命令中运行了它提示以git.exe作为参数,然后运行run gui。 gdb没有输出任何东西有趣:

    (gdb) run gui Starting program: C:\Program Files (x86)\Git\bin\git.exe gu [New Thread 8264.0x1ce4] [New Thread 8264.0x394] [Inferior 1 (process 8264) exited with code 01] (gdb)

    但是我几乎可以肯定我做错了,所以建议不只欢迎:)
  • 请确保您没有安装cygwin或至少没有在您的计算机中安装cygwin完全是PATH

    我确实安装了cygwin(就像往常一样,在git崩溃之前)。从Cygwin我只在路径中有一些* .bat启动器和一些* .dll文件,但是我已经检查了ProcMon,它不会碰到它们,即使我将它们从路径中删除,我仍然会得到同样的崩溃。

git dll msysgit
7个回答
10
投票
这对我有用。

9
投票
我也有这个问题

3
投票
在另一个Windows Update和OS重新启动后,问题消失了。

3
投票
我也遇到了这个问题,这是因为MacType干扰了bash.exe和msys1.0.dll。 (MacType是用于Windows的字体平滑程序,试图模仿OS-X样式的字体光栅化。)仅在我需要的程序上启用MacType,而在试图加载bash.exe的Console2窗口上不启用MacType,可以解决此问题。 >

也许可以帮助其他人解决该错误。


3
投票
我有同样的问题。对我有用的解决方案几乎与XandrGuard建议的解决方案相同

c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll


2
投票
在Win64计算机上安装1.8.0后,我遇到了同样的问题。我通过删除1.8.0并安装1.7.11解决了该问题

1
投票
只需在msys-1.0.dll驱动器上搜索所有C:\,然后让Git使用的第一个出现。

就我而言,我只是改变了顺序:

© www.soinside.com 2019 - 2024. All rights reserved.