今天在使用sourceTree的时候遇到了不能pull和push代码的问题,但是仓库远端的更新内容都能看到,但是更新的代码就是拉不下来,本地提交的代码也不能推送到远端仓库,以下是sourceTree在pull的时候报的错(实际上只要本地和远端进行任何交流操作的时候都会报的错):
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch --prune origin
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68570000, RegionSize 0x150000, State 0x10000
D:\Program Files (x86)\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
起初怀疑是自己改了github的密码导致ssh key失效的问题,因为对ssh key的验证方式并不是很了解,所以尝试了重新生成ssh key,但是结果还是报一样的错。
然后Google了一下相关的错误,然后在Stack Overflow 上找到了一个解决办法,链接如下:
http://stackoverflow.com/questions/13509293/git-fatal-could-not-read-from-remote-repository
总结解决办法:
进入git安装目录,例如我的目录为D:\Program Files (x86)\Git
在确保你的dl不在使用的情况下,在一下目录执行以下命令:
D:\Program Files (x86)\Git\bin>rebase.exe -b 0x50000000 msys-1.0.dll
然后就sourceTree就应该会继续work了~