从Windows 11 23H2升级至24H2后,Git操作提示文件所有权错误的3种有效解决方案

在升级至 Windows 11 24H2 后,使用 git add 等命令时,可能会遇到如下错误提示:

Error: libgit2 returned: repository path 'D:/repo/it-tools' is not owned by current user.
To add an exception for this directory, call:
git config --global --add safe.directory 'D:/repo/it-tools'

这个问题是由于 Windows 更新升级后,目录的所有权发生了变化,Git的安全机制不允许当前用户操作该仓库。

本文将介绍三种解决方案,并解释为什么推荐第一种方案。

错误原因分析

Git 从 2.35 版本引入了 safe.directory 机制,旨在防止未授权用户操作不属于自己的Git仓库。当系统升级或权限变更时,可能导致 Git 无法识别当前用户对某些目录的所有权,从而拒绝操作。

解决方案一:调整目录所有权(推荐)

步骤

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

  2. 运行以下命令,将目录的所有权重新分配给当前用户:

    takeown /f "D:/repo" /r /d y
  3. 重新分配所有权后,Git 将能够识别当前用户的权限,恢复对仓库的正常操作。

推荐理由

  • 一次性解决问题:此方法直接从文件系统权限入手,彻底解决了所有与该目录相关的权限问题。
  • 适用范围广:不仅限于 Git 操作,任何需要访问该目录的程序都会恢复正常。
  • 无安全隐患:只允许当前用户操作,符合系统安全策略,且不会影响系统其他部分的安全性。

解决方案二:针对单个仓库配置安全目录

步骤

  1. 打开 命令提示符 或 PowerShell。

  2. 运行以下命令,将该仓库路径添加到Git的安全目录列表中:

    git config --global --add safe.directory 'D:/repo/it-tools'
  3. 该命令将允许当前用户在该特定目录中正常操作 Git 仓库。

适用场景

  • 单仓库使用场景:如果问题只影响一个仓库,这个方法是快速有效的解决方案。
  • 无需更改系统权限:此方法不涉及更改文件系统的权限,仅影响 Git 的操作。

解决方案三:针对所有目录配置安全目录

步骤

  1. 打开 命令提示符 或 PowerShell。

  2. 运行以下命令,将所有目录标记为安全:

    git config --global --add safe.directory '*'
  3. 这将告诉 Git 信任所有目录,无论其所有权如何。

为什么不推荐此方法?

  • 安全风险高:该命令将所有目录都标记为安全目录,意味着任何用户都可以对系统中的任何 Git 仓库进行操作,极大地增加了安全风险,尤其是在多用户系统中。
  • 不符合精细化权限管理的原则:此方法直接忽略了 Git 的安全检查机制,虽然解决了权限问题,但不建议在生产环境或需要高安全性的系统中使用。

总结

在升级至 Windows 11 24H2 后,git add等命令操作可能会遇到权限相关的问题。

推荐使用解决方案一,即通过 takeown 命令更改目录所有权,从根本上解决问题。

解决方案二适用于单仓库的快速解决方案,解决方案三虽然能解决问题,但由于其安全性较低,不推荐在多用户或安全敏感的环境中使用。

最后,请根据你的实际需求,选择适合的方案来解决问题。

从Windows 11 23H2升级至24H2后,Git操作提示文件所有权错误的3种有效解决方案的更多相关文章

  1. windows 切换git远程仓库地址后 git push 提示Authentication failed

    git切换远程分支: 方法一: git remote set-url origin 你新的远程仓库地址 方法二: git remote rm origin git remote add origin ...

  2. Git应用—05Git文件冲突合并的几种情况(转载)

    git文件冲突合并的几种情况 https://xieye.iteye.com/blog/2433229 本文描述了git冲突的几种常见情况和解决方案,老鸟请直接忽略本文.假设冲突文件是 test/Te ...

  3. windows递归复制指定时间后修改过的文件

    因为在拷贝web站点时,也会存在更新,需要定期覆盖新的内容,就是上次覆盖的时间和到这次时间内修改过的文件都复制. 实现命令xcopy xcopy src dest D:\WWW\phpMyAdmin\ ...

  4. windows递归拷贝(或删除等操作)文件

    SHFileOperation 以拷贝为例. CString strFrom = ....._T("src");CString strTo = ....._T("dest ...

  5. Dynamics 9.0 安装好后 公告出现 提示:出现错误。 请稍等片刻,然后重试。 如果问题仍然存在,请与管理员联系。

    此问题为系统的Bug,示例图如下: 解决方案为修改存储过程 p_RetrievePosts,将startDate参数的默认值改成 1900-01-01,endDate参数的默认值改成 9999-12- ...

  6. 常见Git操作及关键知识点

    一.Git三区概念 工作区 (work dict) 暂存区(stage)(add 是添加到当前的暂存区) 提交区(就是当前工作的分支master分支或者branches分支) git 所有操作都是基于 ...

  7. Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024)的解决

    1.1.Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024),VisualSVN Ser ...

  8. 2分钟 windows下sublime text 3安装git插件:

    12:35 2015/11/182分钟 windows下sublime text 3安装git插件:推荐博客:http://blog.csdn.net/naola2001/article/detail ...

  9. 乘风破浪,遇见下一代操作系统Windows 11,迄今为止最美版本,原生支持安卓应用

    遇见下一代操作系统Windows 11 全新Windows体验,让您与热爱的人和事物离得更近. Windows一直是世界创新的舞台.它是全球企业的基石,助力众多蓬勃发展的初创公司变得家喻户晓.网络在W ...

  10. Windows 下用 gogs 配置局域网 git server

    大道曙光 Windows 下用 gogs 配置局域网 git server 最近要用 C# 开发一个新的项目,所以需要在 Windows 局域网环境下构建一个 git server. 在 Window ...

随机推荐

  1. PyTorch+昇腾 共促AI生态创新发展

    原文链接: https://mp.weixin.qq.com/s/s8jNzTo0DM_LjyUwYDVgGg ============================================ ...

  2. 三台服务器上离线安装redis哨兵集群,一主二从三哨兵

    三台服务器上离线安装redis哨兵集群,一主二从三哨兵 系统安装好gcc环境,(不然编译redis会报错).依旧不知道怎么离线安装gcc环境的可查看CentOS下离线安装gcc环境,图文详细 下载 点 ...

  3. grpc断路器之sentinel 荐

    背景 为了防止下游服务雪崩,这里考虑使用断路器 技术选型 由于是springboot服务且集成了istio,这里考虑三种方案 istio hystrix sentinel 这里分别有这几种方案的对比 ...

  4. Linux命令lsscsi详解

    @ 目录 一.什么是scsi 二.常见硬盘接口 1. IDE接口的硬盘 2. SCSI接口硬盘 3. SATA接口类型 三. lsscsi命令 1. lsscsi 命令安装 2. lsscsi命令英文 ...

  5. 在 Windows 中启用 Administrator 帐户

    打开管理员终端. 启用: net user administrator /active:yes 关闭: net user administrator /active:no

  6. 程序员失业日记4:半个月拿下4个offer

    上篇文章很多小伙伴留言也讲到自己被公司裁员,还有的细心的小伙伴说去年九月就被裁了,在看一下文章的发布时间,绷不住了.先和大家说一下,我已经找到工作,因为最近工作一直都很忙,加上自己也比较懒,所以就拖了 ...

  7. Kubernetes-3.2:kubespray安装高可用k8sv1.20.2集群及常见报错解决

    kubespray安装高可用k8s集群 环境介绍 系统环境 主机名 / IP地址 角色 内核版本 CentOS 7.6.1810 master1 / 192.168.181.252 master &a ...

  8. Dockerfile介绍及常用保留指令

    从本文开始,咱们将介绍docker的另外一个技术点:dockerfile.我们来看看DockerFile相关的知识点,我们将怎么学习? 1:DockerFile是什么? 2:DockerFile构建过 ...

  9. 【YashanDB知识库】自动选举配置错误引发的一系列问题

    问题现象 问题出现的步骤/操作: 配置自动选举,数据库备库手动发起switch over,命令会报错 主.备库变为只读状态,数据库无法进行读写操作 shutdown immediate 停止数据库,此 ...

  10. SpringBoot兼容SpringMVC带有.do后缀的请求

    背景 MVC框架请求的都是.do后缀,但controller控制层拦截的是没有后缀的链接.如controller请求/111/222,当请求/111/222.do时,可以正常进入.当我们将存量一些旧工 ...