git 子模块更新失败,出现“致命:在存储库中检测到可疑所有权”

新手上路,请多包涵

我在我的 linux 工作站上安装了一个新的硬盘。它看起来运作良好。我想在新磁盘中下载一些 repo。所以我执行 git clone XXX ,效果很好。但是当我在文件夹中 cd 并执行 git submodule update --init --recursive 。它失败了

fatal: detected dubious ownership in repository at '/media/data/users/jhu3szh/serialize'
To add an exception for this directory, call:

git config --global --add safe.directory /media/data/users/jhu3szh/serialize

我想也许这只是一个轻微的警告,所以我只是执行了 git config --global --add safe.directory /media/data/users/jhu3szh/serialize 。但是,当我再次执行 git 子模块时,出现了更多类似的错误。 repo 中有很多子模块。

有人可以给我一些解释发生了什么吗?我在google中搜索了错误信息,但我几乎无法获得有用的信息。提前致谢。

原文由 Huihua Jiang 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.5k
1 个回答

静音所有 safe.directory 警告

tl;博士

静音所有与 git 的 safe.directory 系统相关的警告。一定要明白你在做什么。

 git config --global --add safe.directory '*'

长版

改编自这篇关于 我无法将父目录添加到 Git 中的 safe.directory 的帖子

我遇到了同样的问题,并通过禁用 安全目录 检查来解决它,这将结束所有“不安全的存储库”错误。

这可以通过运行以下命令1来完成:

 git config --global --add safe.directory '*'

这会将以下设置添加到您的全局 .gitconfig 文件中:

 [safe]
    directory = *

在禁用之前, 请确保您了解此安全措施 及其 存在的原因。如果您的存储库存储在共享驱动器上,则 不应这样做

但是,如果您 100% 的时间都是您机器的唯一用户, 并且 您的存储库存储在本地,那么理论上禁用此检查应该不会增加风险。

另请注意,您目前无法将其与文件路径结合起来,这与我的情况相关。 该命令不会将通配符 * 解释为操作员,它只需要 "*" 参数来表示“禁用安全存储库检查/将所有存储库视为安全”。


1 - 如果这在 Windows 中的特定终端程序中失败,请尝试用双引号而不是单引号将通配符括起来(通过 此 GitHub 问题):

git config --global --add safe.directory "*"

原文由 Stiin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题