解决Git Dubious Ownership
本篇记录git报错fatal: detected dubious ownership的问题。 重装Windows系统、更改用户名后,磁盘里的文件夹内容没有更改,但是使用git命令时会出现以下报错: fatal: detected dubious ownership in repository at 'XXX' 'XXX/.git' is owned by: (inconvertible) (S-1-5-21-XXX) but the current user is: XXX/XXX (S-1-5-21-XXX) To add an exception for this directory, call: git config --global --add safe.directory XXX 摸索出了3种解决方案。主要参考了这里:stackoverflow。 方法1,复制出新的文件夹 偶然发现,文件夹的用户归属指向我重装系统前的用户。把文件夹复制出一份后,新文件夹的用户归属就指向了当前的用户。 问题解决。 方法2,git添加安全目录 这也是git报错信息里提示的做法。可以把某个文件夹添加为安全目录,这样git不会再报错提醒。 # 针对单一文件夹,XXX代表文件夹路径 git config --global --add safe.directory XXX 特别地,当使用*时,所有本地文件夹都会被匹配到,于是所有文件夹的fatal: detected dubious ownership报错都会解决。 这里需要区分Linux和Windows命令行在语法上的小差异。有个引号的语法差异。 在Windows环境下,如cmd中: # 针对所有文件夹 git config --global --add safe.directory * 在Linux环境下,如Git Bash中: # 针对所有文件夹 git config --global --add safe.directory '*' 方法3,更改文件夹归属 右键点击需要修改的文件夹(比如.git),打开“属性”。在属性中,选择“安全”栏目,再点击“高级”(见下图)。 在高级安全设置里,选择更改文件夹的所有者(见下图)。 在“选择用户或组”的界面,点击“高级”(见下图)。 在新打开的界面里,点击“立即查找”,然后在搜索结果里选择当前用户(见下图)。 回到“选择用户或组”的界面,点击“确认”。然后回到“高级安全设置”的界面,勾选”替换子容器和对象的所有者“,点击”应用“,点击”确认“(见下图)。 问题解决。