本人为仓库所有者,执行git status报fatal:unsafe repository错误如何解决
报错原因
该问题和新增SSH密钥无关,是Git 2.35.2及以上版本新增的安全防护机制触发:Git默认会校验本地仓库目录的所有权,如果当前运行Git的系统账户和仓库目录的所有者不一致,就会抛出unsafe repository报错,避免恶意用户篡改他人仓库下的Git配置执行恶意脚本。
这类报错常见触发场景包括切换系统账户访问旧仓库、目录权限被批量修改、跨挂载盘/共享目录访问仓库等。
解决方法
单仓库信任(最稳妥,推荐)
直接执行报错提示里给出的命令,将对应仓库路径加入全局安全信任列表即可:git config --global --add safe.directory C:/Users/#####/Desktop/workspace/DIO/Anotacoes执行完成后重新运行
git status等Git命令即可正常使用。批量信任同目录下所有仓库
如果你的多个Git仓库都存放在同一个父级目录下,不需要逐个添加,可以直接将父目录加入信任列表,路径末尾加*通配符即可匹配目录下所有仓库:git config --global --add safe.directory C:/Users/#####/Desktop/workspace/*注意Windows环境下路径统一用正斜杠,Git可以正常识别。
修正目录所有权(适合目录所有者确实配置错误的场景)
如果你确认当前登录的系统账户就是该目录的合法所有者,可以直接修改系统目录权限:- 右键仓库文件夹,选择「属性」-「安全」-「高级」
- 将目录所有者修改为当前登录的系统账户,勾选「替换子容器和对象的所有者」
- 保存设置后重启终端,再执行Git命令就不会触发所有权校验报错。
注意:不要为了省事直接将整个磁盘根目录设置为信任目录,会完全绕过Git的安全校验,存在恶意脚本执行风险。
内容的提问来源于stack exchange,提问作者KariDriff
相关产品推荐
相关产品推荐

