重装系统后GIT仓库修复

重装系统之后,打开原系统的GIT仓库会报账户所有者错误,如下图:

bash 复制代码
fatal: detected dubious ownership in repository at 'D:/Projects/xxx'%0A'D:/Projects/xxx' is owned by:%0A        (inconvertible) (S-1-5-21-2957936414-1458211769-1950632429-1001)%0Abut the current user is:%0A        XL-HP/xx (S-1-5-21-1863453967-816813999-1307148958-1001)%0ATo add an exception for this directory, call:%0A%0A        
git config --global --add safe.directory D:/Projects/xxx

解决方案:

将如下脚本另存为PowerShell脚本

bash 复制代码
# 获取当前脚本所在目录(支持相对路径与绝对路径)
$TargetDir = Split-Path -Parent $MyInvocation.MyCommand.Path

Write-Host "正在修复目录所有者:" $TargetDir -ForegroundColor Cyan

# Step 1: 使用 takeown 取得所有权(递归)
# /D Y 自动回答 Yes,避免交互阻塞
takeown /F "$TargetDir" /R /D Y

# Step 2: 使用 icacls 设置 Owner 为当前用户(递归)
# %USERNAME% 在 PowerShell 中等价于 $env:USERNAME
icacls "$TargetDir" /setowner "$env:USERNAME" /T

Write-Host "所有者修复完成。" -ForegroundColor Green

然后放到需要处理的目录下,以管理员身份运行即可,注意保存的ps1脚本编码需要设置为:UTF-8-BOM

相关推荐
阿米亚波3 小时前
【C/C++包管理器】vcpkg(by microsoft)
c语言·c++·git·vscode·microsoft·github·vcpkg
苍煜4 小时前
Git Worktree 多工作树实战教学-工作多分支实用教程
git
RainingTime8 小时前
新版IDEA使用传统用户名、密码登录Git
git
DevangLic18 小时前
【诡异的空文件夹 和 git:冲突合并】最新的尝试
git
舒一笑20 小时前
Windows + WSL2 完整复现 Avernet WAIC 6 Bot 协作演示
人工智能·git·开源
生戎马 平安京策1 天前
git寻根——^和~的区别
git
技术小结-李爽1 天前
【工具】git远程分支合并
git·gitee
RootKai1 天前
Git命令与基本使用流程
git
AdaTina1 天前
关于git的初始操作
git