我已经安装了两个带有最新版本的cygwin和git的Windows服务器,并且我正在尝试将git存储库从S1克隆到S2.我可以使用RSA密钥成功地从S2跳到S1,但是当我这样做时:git clone"ssh:// root @ S1/path/to/my/repo"它会抛出这个输出:
Cloning into /cygdrive/c/program files/apache software foundation/apache2.2/htdocs/myfolder...
2 [main] git 2004 C:/cygwin/lib/git-core/git.exe *** fatal error - cygheap base mismatch detected - 0x61242860/0x6123790.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search fro cygwin1.dll using the WIndows Start->Find/Search facility and delete all bu 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 distrubtion. Rebooting is also suggested if you are unable to find another cygwin DLL.
--5 more errors like that one --
remote: Counting objects: 3275, done.
remote: Compressing oobjects: 100% (3106/3106), done.
fatal: write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)
所以我遵循了这些指示,但没有运气.有什么建议?
Ser*_*nci 52
我有同样的问题.
我刚刚重新启动我的电脑,它再次运行.
找到问题的原因并没有帮助,但至少你可以继续工作.
shi*_*or7 24
编辑:我找到了解决方案.
TL; DR:转到GitHub AppData文件夹并删除PortableGit文件夹,然后重新启动GitHub
C:\Users\[username]\AppData\Local\GitHubPortableGit字母开头的文件夹,并以随机的字母和数字字符串结尾(原文"回答")
我尝试了很多东西,我不知道最终到底有什么用处.我重新启动GitHub,重新启动计算机,卸载并重新安装GitHub,卸载了我最近安装但最终不需要的其他几个程序,删除了AppData\Local目录中的GitHub文件夹,下载并安装了cygwin,可能还有其他一些东西我忘记了.
最后一次尝试是在文件资源管理器中找到所有cygwin1.dll文件,并将它们重命名为cygwin1x.dll,然后重新启动计算机.在我这样做之后,它再次起作用.
我在这里猜测,但我要说下载和安装cygwin,然后重新启动我的电脑就可以了.
Whi*_*awk 22
我最近才开始体验这一点,上面的答案都没有适用于我的情况 - 我没有安装Cygwin或GitHub.
相反,在我的情况下,Windows安全功能,地址空间布局随机化或ASLR创建了此问题.对于未标记自身兼容的程序,默认情况下处于关闭状态.
但是,我为所有程序启用了ASLR以增加安全性.缺点是git命令现在不起作用.
解决方案是为git可执行文件排除ASLR.因为它们中有很多,我不得不使用PowerShell作为管理员:
Get-Item -Path "C:\Program Files\Git\usr\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }
Run Code Online (Sandbox Code Playgroud)
小智 10
您在问题陈述中没有提到这一点,但我假设您运行的是64位版本的Windows.Cygwin在64位Windows上运行时遇到问题,特别是对于大型程序.我相信这是由于cygwin1.dll支持库中的内存管理问题.看起来它正在做出不可支持的假设,它将永远地并且总是被映射到每个进程中的相同地址,因此它可以在系统范围的全局变量中保持特定于进程的事物(如堆地址).
在我丰富的空闲时间里,我一直在努力追踪有问题的位.在此期间,您可以尝试重新定位cygwin1.dll本身.请注意,这是一个非常重要的事情,比它需要的更复杂 - 甚至比重新设置其他所有事情都要复杂.
对我来说,原因是,git没有通过cygwin安装,虽然从git-scm定期下载.一旦我运行了cygwin设置,添加了git,它运行得很好.
你用其他任何命令得到这个错误吗?用git --version?
尝试重新运行Cygwin setup.exe并重新安装cygwin1.dll(包装是"cygwin",在"Base"下)和你的git包("devel"下的"git"包)并重新启动.
| 归档时间: |
|
| 查看次数: |
44076 次 |
| 最近记录: |