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

git submodule update报dubious ownership加safe.directory仍报错原因

报错根因说明

detected dubious ownership in repository是Git 2.35.2及以上版本新增的安全校验逻辑:执行Git命令时,程序会检查当前操作用户是不是目标仓库目录的属主,如果不是就直接中断操作,目的是防止其他恶意用户篡改仓库里的钩子、配置脚本,骗当前用户运行恶意代码。

你遇到大量子模块重复报错的原因有两个:

  • 新挂载硬盘的属主配置不对
    新硬盘如果挂载时没手动指定uid/gid参数,整个挂载点下所有文件、目录的默认属主一般是root;要是硬盘用的是NTFS、exFAT这类不支持Unix原生权限体系的文件系统,系统没法正确映射目录属主,也会默认把所有文件归到root名下。你当前登录的操作用户和目录属主对不上,自然会触发Git的所有权校验拦截。
  • Git的safe.directory例外不会递归生效
    你之前给最外层父仓库加的安全例外,只对这一个仓库路径有效,不会自动应用到目录下的其他子仓库。Git子模块本质就是存在父仓库子目录里的独立Git仓库,每个子模块都有自己的.git元数据目录,执行git submodule update的时候Git会挨个检查每个子模块目录的所有权,只要属主不对就单独抛一次错,子模块多的时候就会刷出一堆同类报错。

如果要彻底解决问题,最稳妥的方式是重新挂载硬盘时指定和你当前用户匹配的uid、gid参数(先执行id命令就能查到自己当前用户的uid、gid值),从文件系统层面把所有目录的属主改对;如果是你自己个人用的工作站,确定这个挂载盘下的内容都安全可信,也可以直接执行git config --global --add safe.directory '*'加全局通配符例外,跳过所有路径的所有权校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:27:16