You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git中取消各子模块core.fileMode设置报错,求原因及解决办法

Git子模块取消core.fileMode配置时报错的问题解答

执行命令及报错信息

$ git submodule foreach --recursive "git config --unset core.fileMode"
Entering 'buildSrc'
fatal: run_command returned non-zero status for buildSrc

1. 非零状态报错的原因

  • 目标子模块buildSrc中不存在core.fileMode配置项:git config --unset命令在要删除的配置不存在时会返回非零状态,触发整个循环中断
  • 子模块的Git仓库损坏或未正确初始化:buildSrc的.git目录缺失、损坏,导致Git命令无法正常执行
  • 无buildSrc目录的读写权限:执行Git配置命令时没有足够权限修改仓库配置

2. 解决方法

方法1:忽略单个子模块的执行失败,继续处理所有子模块

修改命令,添加|| true让单个子模块的执行失败不中断整个循环:

git submodule foreach --recursive "git config --unset core.fileMode || true"

这个命令会尝试为每个子模块取消配置,即使某个子模块没有该配置或执行失败,也会继续处理其他子模块。

方法2:排查并修复报错的buildSrc子模块

  1. 进入buildSrc目录,手动执行命令查看具体错误:
cd buildSrc
git config --unset core.fileMode
  1. 根据具体错误处理:
  • 若提示error: key does not exist:说明该子模块本来就没有core.fileMode配置,无需修复,直接用方法1的命令跳过即可
  • 若提示权限错误:调整目录权限(以Linux/macOS为例):
chmod -R u+w ../buildSrc
  • 若提示Git仓库损坏:重新初始化该子模块:
cd ..
git submodule deinit buildSrc
git submodule update --init buildSrc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:07:05