Git:fatal:检测到可疑所有权

11
我使用新的Windows安装和相同的网络共享文件夹(NAS系统)。安装了Git和TortoiseGit后,我尝试连接到Git存储库,但总是出现此错误。已更改的是服务器而不是用户。

enter image description here

我已运行

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

但这并没有改变什么。我该怎么修复这个问题?

我在哪里可以设置这个变量?

GIT_TEST_DEBUG_UNSAFE_DIRECTORIES=true

7
在Windows上,通常必须使用双引号而不是单引号引用内容。检查safe.directory是否设置为*(正确)或'*'(错误)。如果是错误的,请编辑全局配置文件以删除单引号。我还假设您正在使用当前版本的Git(之前有一组版本暂不支持*设置)。 - torek
我不使用Windows,但我相信在Windows CMD.EXE上,您可以使用“set”命令设置环境变量。如果您使用Git-for-Windows分发的Windows版本的bash,则可以运行命令ENV_VAR=value cmd arg1 arg2,例如,该设置仅在该运行中生效,或者您可以运行export ENV_VAR=value作为命令,该设置现在已设置为剩余的shell会话(或直到您取消设置ENV_VAR)。 - torek
有关TortoiseGit的问题,请咨询TortoiseGit团队。 - torek
运行以下命令:git config --global --add safe.directory "*",然后执行 git config --global --list 来检查。 - user3443139
请参考StackOverflow上的此链接:link - undefined
显示剩余3条评论
3个回答

18
当一个仓库被不同于当前用户的用户克隆时,就会发生这种情况。在我的情况下,在重新安装Windows后,但使用先前克隆的git仓库(在另一个分区上)后遇到了这个问题。
  • 右键单击仓库文件夹,属性,安全,高级。
  • 点击所有者行上的“更改”。
  • 找到你的用户(高级…,查找现在,选择你的用户)。确认。
  • 在更改屏幕上,启用“替换子容器和对象的所有者”。

那应该就能解决错误了。

如果您打算在复制的存储库上使用多个用户,则应按照git的说明添加例外。


4
如果本地Windows机器和网络附加存储(NAS)设备之间的Windows SID(安全标识符)不同 - 例如没有域控制器(DC)或两台机器位于不同的域中 - 那么您将会遇到此错误。除非NAS和Windows机器通过DC的Active Directory系统共享用户凭据,否则更改文件所有者无法解决此问题。例如,Synology NAS有一个可用的Active Directory软件包,可以部署以为所有客户端提供Windows凭据。 - user3443139
2
@user3443139 是的,这就是为什么“如果您打算在克隆的存储库上使用多个用户,则我会遵循git指示添加异常。” ;)这个问题是关于这个问题的谷歌热门问题。 - scx
2
我认为你在这里错过了重点 :) 这将会发生在单个用户(一个人)使用网络共享(NAS)上的git仓库时,除非你有一个域控制器(或等效物)来提供单个用户凭据(SID)给所有涉及的机器(NAS + OP问题中的客户端PC)。 - user3443139
在这里工作,谢谢! - undefined
我遇到了这个错误,而且我是克隆该代码库的用户。 - undefined

3

你能再多解释一点吗? - undefined

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

这对我有用,只是有些小差异。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接