"How to Resolve the `detected dubious ownership in repository` Error in Git Deployment Without Adding `safe.directory`"
问题描述
在项目部署过程中,当我完成 git clone 后,再次执行 git pull 或 git fetch 时,却遇到了一个棘手的问题,报错如下:
fatal: detected dubious ownership in repository at '/www/wwwroot/xxxcurrent'
To add an exception for this directory, call:
git config --global --add safe.directory /www/wwwroot/xxx/current
解决方案
如果你选择了最简单的解决方式,就按照报错信息提示的指令执行即可。然而,当我想要深究问题背后的原因时,我在 Stack Overflow 上发现了一些有趣的讨论:https://stackoverflow.com/questions/73485958/how-to-correct-git-reporting-detected-dubious-ownership-in-repository-withou,尽管问题似乎主要发生在 WSL2 环境中。
问题原因
但是,评论区里的一些观点吸引了我的注意:可能是由于拉取代码的人与实际提交代码的人不一致,才会导致这种情况的发生(参考官方介绍:https://github.blog/2022-04-18-highlights-from-git-2-36/#stricter-repository-ownership-checks)。
个人经验
我之前从未遇到过这个问题,但实际上,现在的 Git 项目为了保证安全性,提交代码的私钥与部署环境可能并不一致。因此,在这种情况下,就有可能会遇到这样的错误。
结论
如果你也遇到了类似的问题,按照报错信息提示添加即可解决(或者更简单的方式是执行 git config --global --add safe.directory '*'
)。