IntelliJ IDEA调用Git报错Bad CPU type in executable求助
问题原因分析
- 错误本质:
error=86, Bad CPU type in executable表明你指定的Git二进制文件是x86_64架构,而你的M1 Pro是ARM64架构,当前运行环境未通过Rosetta 2转译执行x86程序,导致兼容性报错。 - zsh与bash的表现差异:
- 你的zsh终端大概率是通过Rosetta 2启动的(比如右键终端图标选择「使用Rosetta打开」),Rosetta会自动转译x86程序,同时zsh可能存在shell fallback逻辑——当
/usr/local/bin/git无法正常工作时,自动调用了系统自带的ARM64版本Git(路径为/usr/bin/git),所以你看到的是Apple Git-137.1的版本信息。 - 而bash终端未启用Rosetta转译,直接执行
/usr/local/bin/git这个x86架构的二进制文件,就触发了CPU类型不兼容的报错。
- 你的zsh终端大概率是通过Rosetta 2启动的(比如右键终端图标选择「使用Rosetta打开」),Rosetta会自动转译x86程序,同时zsh可能存在shell fallback逻辑——当
- 路径一致但表现不同的核心:
两次which git返回相同路径,是因为/usr/local/bin/git确实存在,但该文件是损坏或未适配ARM的x86版本。zsh靠Rosetta转译+fallback逻辑正常运行,bash则直接执行无效二进制导致报错。
验证方法
- 检查Git二进制架构:执行
file /usr/local/bin/git,若输出含x86_64则为x86版本,含arm64则是适配M1的版本。 - 确认zsh运行环境:执行
arch,输出i386说明是Rosetta转译的x86环境,输出arm64则是原生ARM环境。 - 查看系统Git:执行
/usr/bin/git --version,结果应与你zsh中看到的Apple Git版本一致。
解决方案
- 删除无效的x86版本Git:执行
sudo rm /usr/local/bin/git,系统会自动使用/usr/bin/git的原生ARM版本。 - 安装适配ARM的自定义Git:用Homebrew执行
brew install git,M1上Homebrew默认将Git安装到/opt/homebrew/bin/git,调整PATH让该路径优先级高于系统Git即可。 - 让bash兼容x86程序:右键终端图标选择「使用Rosetta打开」后再启动bash,即可通过转译运行x86版本的Git。
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

