Github / Cygwin错误:检测到cygheap碱基错配

问题描述 投票:18回答:6

Git一直在给我这个错误

    0 [main] sh (47116) C:\Users\Marcus\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c\usr\bin\sh.exe: *** fatal error - cygheap base mismatch detected - 0x11C7400/0x1297400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
    0 [main] sh 42052 fork: child -1 - forked process 47116 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
/mingw32/libexec/git-core/git-sh-setup: fork: retry: No child processes
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
    0 [main] sh 42052 fork: child -1 - forked process 47116 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
/mingw32/libexec/git-core/git-sh-setup: fork: retry: No child processes

我尝试过的事情包括:

  • C:\cygwinC:\cygwin64删除cygwin并重新安装
  • 使用卸载程序和安装程序重新安装github。
  • 卸载github并手动删除其本地和漫游的appdata文件夹,然后重新安装。
  • 重新启动计算机
  • 放弃qazxsw poi,它成功了,但没有解决任何问题。
  • 重新定位C:\cygwin它再次返回原始错误。

作为参考,我正在运行Windows 10 64位。唯一的另一个问题我能找到那个引脚指出我从未得到过的错误:%appdata%\Local\Github\PortableGit_c7e...\.

我不确定除了完全重新安装Windows之外还有哪些方面,任何帮助将不胜感激。

git github cygwin
6个回答
12
投票

来自link heregit-for-windows)的shell不应该在Cygwin中运行,也不应该在msys2的不同安装中运行。

based on msys2使用GitHub Desktop

对于git bash会话,您不需要Cygwin或GitHub Desktop。

解压缩old git-for-windows (2.5.3, Sept. 2015)

然后:

c:\prgs\git\PortableGit-2.7.0-64-bit

然后,您将能够键入cd c:\prgs\git mklink /J latest PortableGit-2.7.0-64-bit set GIT_ROOT=c:\prgs\git\latest set PATH=%PATH%;%GIT_ROOT%;%GIT_ROOT%\bin;%GIT_ROOT%\cmd;%GIT_ROOT%\us`\bin 以启动基于Linux的bash会话。

或者,从常规的git-bash shell会话中,您将可以访问200多个unix命令(CMDcurlcatxargs,...)。 不需要Cygwin。


5
投票

我有一个非常类似的问题,但既没有重新启动也没有重新安装git或cygwin帮助。我总是得到:

ls

我花了一段时间才弄清楚它是在我读到与“系统范围的强制ASLR”相关的Windows错误之后开始的,以及通过Windows UI提供的设置如何设置正确的注册表项。通过添加此注册表项使我的系统更安全后,cygwin forking破坏了:

      1 [main] sh (12220) C:\Program Files\Git\usr\bin\sh.exe: *** fatal error - cygheap base mismatch detected - 0x37C7408/0x38E7408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
      0 [main] sh 6928 fork: child -1 - forked process 12220 died unexpectedly, retry 0, exit code 0xC0000142, errno 11
C:\Program Files\Git\mingw64/libexec/git-core\git-stash: fork: retry: Resource temporarily unavailable

资料来源:Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] "MitigationOptions"=hex:00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00

这导致git-stash不再工作,也没有cygwin工作(我后来安装。删除该注册表项再次修复了问题。



4
投票

重新启动修复它为我。我可能因为升级Git for Windows而出现此错误。在做任何其他疯狂的事情之前尝试重新启动!


2
投票

好吧,对我来说类似的错误Get-Item -Path "C:\Program Files\Git\usr\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages } ...

ffmpeg $ ./configure

意思是“你正在尝试使用MSYS2进行构建,但意外地失败了一些git分布式cmp.exe文件,这些文件显然是不可用的”(参见VonC的回答)。

修复我的情况:将它们安装到MSYS2中:

License: LGPL version 2.1 or later
Creating config.mak, config.h, and doc/config.texi...
      1 [main] cmp (5984) C:\Program Files\Git\usr\bin\cmp.exe: *** fatal error - cygheap base mismatch detected - 0x180326400/0x180330400.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

0
投票

您安装的MSYS2中的某些软件包与x:\ cygwin \ bin冲突,因此只需删除系统环境中的MSYS2 PATH

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