fatal: detected dubious ownership in repository(已解决)

文章讲述了在Windows10更新导致系统卡顿并重置后,由于用户名改变引起Git仓库权限问题。通过更改Git仓库文件夹的所有者为当前Windows账号可以解决这个问题,具体操作包括:进入文件夹属性,更改所有者,选择当前用户,确保子文件夹也一同更改。此方法避免了重新拉取代码的耗时过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近windows 10 更新后,发现非常卡顿,鼠标右键,偶尔要等10秒才能有反应,无法系统还原,但是可以通过装机软件,进行重置,类似于系统重新安装

重置 windows 10后,因为更新了用户名,造成之前的所以 git 仓库,都无法直接拉取代码

git 操作错误提示

admin@DESKTOP-TNI5ROV MINGW64 /d/git/rt-thread/rt-thread_pm2
$ git log
fatal: detected dubious ownership in repository at 'D:/git/rt-thread/rt-thread_pm2'
'D:/git/rt-thread/rt-thread_pm2' is owned by:
        'S-1-5-21-1045045257-1974506225-3199486363-500'
but the current user is:
        'S-1-5-21-1045045257-1974506225-3199486363-1001'
To add an exception for this directory, call:
        git config --global --add safe.directory D:/git/rt-thread/rt-thread_pm2

解决方法

临时的解决方法就是按照提示, 在 git bash 中输入git config --global --add safe.directory D:/git/rt-thread/rt-thread_pm2,但是这只能解决当前的 git 仓库,其他的git 仓库,都要这么做,并且 git config -l,会发现一大串的这些操作,看着很不爽

其实这个是git 仓库 用户名问题,如之前是 Administrator,现在改为了 admin,之前的目录所有者需要改为现在的用户,所以解决这种问题的根本方法就是【更改git 仓库文件夹的所有者】,改为当前的windows 登录的用户

操作步骤

1.选择 git 仓库的文件夹,如果这个文件夹下全是git 仓库,可以选择整个文件夹,鼠标右键【属性】 【安全】【高级】

  1. 所有者与当前的windows登录的账号不一样,【更改】

3.通过查找,找到当前登录的账号

4.选择查找

5.选择当前的账号

6.选择当前账号后,点击【确定】

7.点击【确定】后,目录文件较多,会操作一会

8.子文件夹等一起更改

9.更改后的效果

更改 git 仓库 文件夹的所有者为当前windows 账号,git 的操作正常了

小结

这个操作还是有点耗时,不过,就不用重新拉取代码了,因为拉取代码,也是比较的耗时的

不太清楚 git 为何设置了这个提示,不过更改文件夹用户,这个在 windows上,我是第一次操作

————————————————

版权声明:本文为优快云博主「张世争」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.youkuaiyun.com/tcjy1000/article/details/127129224

### 问题解析 当用户遇到 `fatal: detected dubious ownership in repository at '路径'` 错误时,通常是因为 Git 检测到当前用户对仓库目录没有足够的所有权权限。这种情况常见于重装系统、更改用户账户或移动仓库目录后。 ### 解决方法 #### 方法一:将仓库目录标记为安全目录 可以通过 Git 的全局配置将特定目录标记为“安全目录”,从而绕过所有权检查。执行以下命令: ```bash git config --global --add safe.directory "V:/Web/Github_commit/Interview" ``` 如果希望一次性解决所有仓库的问题,可以使用通配符: ```bash git config --global --add safe.directory "*" ``` 此方法适用于临时或快速修复问题,但会降低安全性[^2]。 #### 方法二:更改仓库目录的所有者 更彻底的解决方案是确保当前登录用户对仓库目录拥有所有权。在 Windows 系统中,可以通过以下步骤操作: 1. 右键点击仓库目录,选择 **属性**。 2. 切换到 **安全** 标签页,点击 **高级**。 3. 在 **所有者** 旁边点击 **更改**。 4. 输入当前登录用户名,点击 **立即查找**,选择该用户并确认。 5. 勾选 **替换子容器和对象的所有者**(可选)。 6. 确认更改后等待系统更新权限。 这种方法解决了根本问题,避免了每次都要添加安全目录的操作[^4]。 #### 方法三:批量处理多个仓库 如果存在多个仓库出现相同问题,逐个添加安全目录会非常繁琐。可以考虑编写脚本批量处理,例如在 PowerShell 中遍历某个父目录下的所有 Git 仓库,并自动添加安全目录: ```powershell $rootPath = "D:/git" Get-ChildItem -Path $rootPath -Directory | ForEach-Object { $repoPath = $_.FullName git config --global --add safe.directory "$repoPath" } ``` 这将减少重复劳动并提高效率[^5]。 ### 总结 | 方法 | 优点 | 缺点 | |------|------|------| | 添加安全目录 | 快速简便 | 安全性较低,需逐个添加或使用通配符 | | 更改目录所有者 | 彻底解决问题 | 操作复杂,涉及系统权限修改 | | 批量脚本处理 | 适合多仓库环境 | 需要一定的脚本基础 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值