You need to enable JavaScript to run this app. M1芯片Mac终端从GitHub执行git pull时报错error: fetch died of signal 9求解决
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac终端从GitHub执行git pull时报错error: fetch died of signal 9求解决

M1 Mac 执行git pull报error: fetch died of signal 9排查与解决方案

signal 9即SIGKILL强制终止信号,代表git拉取流程中负责网络获取的fetch子进程被系统强行终止,结合M1芯片设备的运行特性,可按以下优先级逐次排查修复:

内存不足触发的系统强制杀进程

  • macOS在内存压力过高时,会自动优先终止占用内存最高的进程释放资源;git拉取大体积仓库、开启并行打包线程时会出现明显的内存峰值,是触发该报错的最常见原因
    • 临时验证:执行拉取操作前,通过活动监视器确认内存压力处于绿色无告警区间,关闭虚拟机、多开的浏览器标签、大型IDE等高内存占用程序后重试
    • 长期配置优化:降低git fetch进程的内存峰值占用,依次执行全局配置命令:
      # 将git打包线程数设置为单线程,避免多线程并行带来的内存陡增
      git config --global pack.threads 1
      # 关闭提交图自动写入,减少本地文件处理的内存消耗
      git config --global fetch.writeCommitGraph false
      # 关闭动态压缩逻辑,降低压缩计算的CPU与内存占用
      git config --global core.compression 0
      

M1架构下git版本不兼容

  • 早期版本的git程序为x86_64(Intel)架构编译,在M1设备上需要通过Rosetta转译层运行,转译过程中容易出现内存访问异常,被系统直接发送SIGKILL终止
    • 检查当前git的运行架构:执行file $(which git),如果返回结果中标识为x86_64,即为转译运行的非原生版本
    • 修复方式:重新安装适配arm64原生架构的git程序,安装完成后再次校验架构为arm64即可解决转译带来的崩溃问题

本地仓库文件损坏导致进程异常

  • 之前的拉取流程如果出现断电、强制中断等异常情况,会导致本地.git目录下的对象文件损坏,fetch进程在校验本地文件时会触发内存访问错误被终止
    • 先执行仓库完整性校验:
      git fsck --full
      
    • 若检测出损坏、无效的本地对象,执行垃圾回收清理失效缓存后重试拉取:
      git gc --prune=now
      

大体积仓库的临时规避方案

如果拉取的单仓库体量超过1G,可通过浅拉取模式大幅降低单次拉取的资源消耗,绕开内存峰值限制:

git pull --depth=1

内容的提问来源于stack exchange,提问作者vmieres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 00:57:08