目录属性TurtoiseGit提示:libgit2 returned: repository path xxx is not owned by current user.(没太懂)

参考文章:TurtoiseGit提示:Git采用分层次的配置结构。即配置有多个层次,高层次的设置会覆盖低层次的设置。 实际生效选项卡显示了您在当前范围的有效值(只读状态)。git分层配置、git配置结构、没搞懂

在这里插入图片描述

重新拉一下仓库不知道是否可行。

有效果,删除仓库重新拉一下就好了(为了保险起见,我保留了原先本地仓库,从网上拉下来最新的后,再用它跟本地的用beyond compare对比,没问题后,再替换原来的)

项目目录属性TurtoiseGit提示

libgit2 returned: repository path ‘C:/Users/Arnold/Desktop/test/my-learning-test’ is not owned by current user.
To add an exception for this directory, call:
git config --global --add safe.directory 'C:/Users/Arnold/Desktop/test/my-learning-test'

在这里插入图片描述

解释

这个错误提示是由于 Git 的安全机制(safe.directory)检测到当前用户对指定仓库目录(C:/Users/Arnold/Desktop/test/my-learning-test)没有所有权。Git 从 2.35 版本开始引入了这一机制,目的是防止未授权用户操作不属于自己的 Git 仓库。


错误原因

  1. 目录所有权问题:可能是由于系统更新、用户账户更改、文件系统权限变更,导致 Git 无法识别当前用户对仓库目录的所有权。
  2. 多用户环境:如果目录由其他用户创建,当前用户可能没有完全访问权限。
  3. 安全策略限制:Git 默认会拒绝操作未明确标记为“安全”的目录。

解决方案

方案一:将目录添加到 Git 的安全目录列表(推荐临时解决)(可以解决☆☆☆)

如果问题仅影响当前仓库,可以通过以下命令快速解决:

git config --global --add safe.directory "C:/Users/Arnold/Desktop/test/my-learning-test"
  • 作用:告诉 Git 该目录是“安全”的,允许当前用户操作。
  • 适用场景:单仓库问题,无需修改系统权限。

执行了下面这条命令后,暂时没有报libgit2 returned: repository path xxx is not owned by current user.问题了。
在这里插入图片描述

可以通过以下命令查看全局配置中的 safe.directory 列表:

git config --global --get-all safe.directory

在这里插入图片描述

如果想移除这个目录,可以使用命令:

git config --global --unset safe.directory "C:/Users/Arnold/Desktop/test/my-learning-test"

在这里插入图片描述

方案二:调整目录所有权(彻底解决)(可以解决☆☆☆)

如果希望永久解决权限问题,可以重新分配目录的所有权给当前用户:

  1. 以管理员身份运行命令提示符(CMD)或 PowerShell

  2. 执行以下命令(将路径替换为你的实际路径):

    takeown /f "C:/Users/Arnold/Desktop/test/my-learning-test" /r /d y
    

    代码仓库挺大,执行力很久才好,不过确实能解决。

    • /r:递归处理子目录。
    • /d y:自动确认操作。
  3. 刷新权限(可选):

    icacls "C:/Users/Arnold/Desktop/test/my-learning-test" /grant:r %username%:F /t
    
    • %username%:当前用户名。
    • F:赋予完全控制权限。
    • /t:递归处理子目录。

方案三:通过 TortoiseGit 手动设置权限(没解决,可能赋错权限了)

  1. 右键点击问题目录,选择 “TortoiseGit” > “设置”
  2. “Git” > “常规” 选项卡中,检查 “默认编辑器”“缓存凭据” 是否配置正确。
  3. 如果仍然报错,尝试通过 “文件系统权限” 调整:
    • 右键目录 > “属性” > “安全” 选项卡。
    • 点击 “编辑”,添加当前用户并赋予 “完全控制” 权限。
      在这里插入图片描述
      (貌似改了还是不行,是不是没改对用户???)

验证是否解决

  1. 在问题目录下打开 Git Bash 或 CMD。
  2. 执行 git statusgit add .,确认是否还报错。
  3. 如果问题解决,后续操作将正常进行。

注意事项

  1. 权限问题的根本原因:如果目录是通过网络共享、其他用户创建或从备份恢复的,可能需要重新分配所有权。
  2. 全局配置的风险
    如果使用 git config --global --add safe.directory "*"(将所有目录标记为安全),虽然能快速解决问题,但会降低安全性(不推荐长期使用)。
  3. TortoiseGit 的兼容性
    如果 TortoiseGit 仍然报错,尝试重启资源管理器或重新安装 TortoiseGit。

总结

  • 推荐优先使用方案一(添加安全目录),简单快捷。
  • 如果问题频繁出现或影响多个仓库,建议使用方案二(调整目录所有权)彻底解决。
  • 确保 Git 和 TortoiseGit 已正确安装,并配置了环境变量(可通过 git --version 验证)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值