文章

Git 检测到仓库所有权与当前用户不匹配问题及解决方法

Git 检测到仓库所有权与当前用户不匹配问题及解决方法

Git 检测到仓库所有权与当前用户不匹配问题及解决方法

问题描述

在执行 bundle exec jekyll s 命令时,出现如下错误:

1
2
3
4
5
6
7
8
fatal: detected dubious ownership in repository at '/path/to/repository'
'/path/to/repository' is owned by:
        <repository owner info>
but the current user is:
        <current user info>
To add an exception for this directory, call:

        git config --global --add safe.directory /path/to/repository

问题原因

  • 仓库所有者与当前用户不匹配:该 Git 仓库可能最初由其他用户账户创建,而你当前使用的是不同的账户。
  • Git 2.35+ 版本的安全策略:Git 2.35 及以上版本默认不信任由不同所有者拥有的仓库,以防止潜在安全风险。
  • 仓库被拷贝或移动过:如果从其他用户那里拷贝仓库,也可能出现所有权问题。

解决方案

方法 1:添加安全目录(推荐)

运行以下命令,让 Git 信任该目录:

1
git config --global --add safe.directory /path/to/repository

以上命令会将 /path/to/repository 加入 Git 的安全目录列表,从而允许当前用户访问。


方法 2:修改文件夹权限

如果你拥有管理员权限,可以修改该目录的所有权:

  1. 右键目标文件夹 → 属性
  2. 进入 安全(Security) 选项卡 → 高级(Advanced)
  3. 如果 所有者(Owner) 不是你当前的用户,点击 更改(Change),并将所有者修改为你的账户(例如:<current user>
  4. 确保新所有者拥有“完全控制”权限
  5. 点击 应用(Apply)确定(OK)

完成后,可再次运行 git status 检查问题是否已解决。


方法 3:使用 sudo 修改所有权(适用于 WSL / Linux)

在 WSL(Windows Subsystem for Linux)或 Linux 环境下运行 Git 的话,可执行:

1
sudo chown -R $(whoami) /path/to/repository

然后重新运行 git status,确认问题是否解决。


总结

| 方法 | 适用情况 | 命令 / 操作 | | ————————– | —————————– | ————————————————- | | 添加安全目录(推荐) | Git 只是不信任该目录 | git config --global --add safe.directory <路径> | | 修改文件夹权限 | 当前用户无访问该目录的权限 | 手动修改文件夹所有者和权限 | | 使用 sudo 修改所有权 | 在 WSL / Linux 环境中遇到问题 | sudo chown -R $(whoami) <路径> |

这样,你的 Git 仓库就可以正常访问了!🚀

本文由作者按照 CC BY 4.0 进行授权