Git仓库执行CLI命令时出现fatal: mmap failed: Operation timed out错误的修复求助
Git仓库执行CLI命令时出现fatal: mmap failed: Operation timed out错误的修复求助
遇到这种仓库损坏、工具突然找不到仓库的情况确实闹心,我来分享几个实际可操作的修复步骤,你可以一步步尝试:
先做仓库完整性检查
首先用Git自带的命令定位问题根源:- 执行
git fsck --full,这个命令会全面扫描仓库的对象数据库,找出损坏或缺失的对象,它会输出具体的问题点,帮你判断损坏程度。 - 如果扫描出无效对象,可以接着执行
git prune清理掉那些失效的对象,之后再重新运行git fsck --full看看问题是否缓解。
- 执行
解决mmap超时本身的问题
这个错误通常和磁盘IO、内存配置或者磁盘空间有关:- 先检查你的磁盘剩余空间,如果磁盘快满了,Git无法正常读写对象就会触发这类错误,清理出足够空间后再试。
- 可以调整Git的mmap内存配置,执行
git config --global core.mmapWindow 100M增大mmap的窗口大小,有时候能解决超时问题;如果还是不行,也可以试试关闭mmap,执行git config --global core.mmapWindow 0,让Git改用常规的文件读取方式。
从备份或远程仓库恢复
如果仓库损坏比较严重,这两个方法最稳妥:- 如果你之前手动备份过仓库文件夹,或者有其他本地副本,可以把损坏仓库的
.git文件夹替换成备份里的,保留好工作区的文件后再尝试同步。 - 如果仓库关联了远程仓库,先把本地工作区未提交的修改、stash里的内容手动复制到其他目录备份,然后删除损坏的本地仓库,重新克隆远程仓库,再把备份的文件放回新仓库,重新提交或恢复stash。
- 如果你之前手动备份过仓库文件夹,或者有其他本地副本,可以把损坏仓库的
排查GitHub Desktop的缓存问题
有时候是工具本身的缓存异常导致的:- 完全关闭GitHub Desktop,找到它的缓存目录(Windows一般在
C:\Users\[你的用户名]\AppData\Roaming\GitHub Desktop,Mac在~/Library/Application Support/GitHub Desktop),删除缓存文件后重新打开工具,看看能不能正常识别仓库。
- 完全关闭GitHub Desktop,找到它的缓存目录(Windows一般在
备注:内容来源于stack exchange,提问作者saurav
相关产品推荐
相关产品推荐

