如何在 Windows 上卸载 Git LFS
卸载 Git LFS 前先结束 Git 传输,备份仓库和大文件,这篇覆盖全机安装的独立 GitHub.GitLFS 包,Git for Windows 本身也带 Git LFS,所以卸载独立包后仍可能找到另一份程序。
卸载独立安装包
关掉正在传输的终端,到设置 › 应用 › 已安装的应用 › Git LFS › 卸载,或运行:
winget uninstall --id GitHub.GitLFS --exact
这个命令调用包里的 Inno Setup 卸载器,不为移除独立 Git LFS 副本把 Git for Windows 一起卸载。
保留仓库和配置
| 位置 | 怎么处理 |
|---|---|
%ProgramFiles%\Git LFS |
交给独立安装包的卸载器移除程序 |
每个仓库里的 .git\lfs |
保留本地 LFS 对象,其中可能有尚未上传的文件 |
.gitattributes 和仓库钩子 |
保留仓库的跟踪和传输配置 |
| Git for Windows 安装目录 | 保留它自己的程序和附带的 Git LFS |
git lfs uninstall 移除的是过滤器和钩子,它不是 Windows 安装包的卸载入口,改这些设置会影响仍使用 LFS 的仓库,卸载本地包不会删除远端对象或停止远端存储计费。
检查还剩哪一份
卸载后新开一个 PowerShell 窗口,运行:
winget list --id GitHub.GitLFS --exact
Test-Path "$env:ProgramFiles\Git LFS"
Get-Command git-lfs.exe -All -ErrorAction SilentlyContinue | Select-Object Source
git --version
winget 没有匹配项表示独立包的登记消失,False 表示它的程序目录不存在,True 表示还要检查,Get-Command 列出 PATH 上能找到的程序,包括附带的另一份,没有输出表示 PATH 上没找到,git --version 只证明 Git 能启动,不证明 LFS 传输正常,查询报错则还没有完成核验。
Mole 会列出什么
独立程序目录和它的使用记录默认选中,仓库文件、本地 LFS 对象、Git for Windows 和 PATH 项不会随这个包删除,移除注册表项前会先备份。
这次检查覆盖了什么
2026 年 10 月 3 日在 ARM64 虚拟机里,用 Git LFS 3.8.0 做 winget 全机安装,Inno 卸载器移除了独立程序,Git for Windows 仍能运行,全机 PATH 项被保留,另外单独运行厂商卸载器,做了即时和十分钟后的检查,没有测试真实 LFS 上传、仓库钩子、远端存储或跨版本升级。
