如何在 Windows 上卸载 GitHub CLI
GitHub CLI 把登录令牌和设置放在程序本体之外,如果你跑过 gh auth login,卸载程序不会自动让你退出登录。这份指南覆盖用 GitHub.cli winget 包按机器安装的 GitHub CLI。
先退出正在用 gh 的窗口
关掉运行 gh 命令的终端。卸载前在任务管理器(Ctrl+Shift+Esc)里确认没有 gh.exe,不过它一般命令跑完就自己退出了。
用自带的卸载器移除应用
打开「设置 › 应用 › 已安装的应用」,找到 GitHub CLI,选择卸载,或者运行:
winget uninstall --id GitHub.cli
数据分别在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
Program Files\GitHub CLI |
gh.exe 本体 |
卸载器会删 |
%APPDATA%\GitHub CLI |
登录令牌和设置,GitHub 文档里写的是 $env:AppData 有值时 gh 用的这个配置目录 |
卸载器不会动,想清理自己删,删之前先跑 gh auth logout 让令牌失效 |
这次测试没跑过 gh auth login 或其他 gh 命令,%APPDATA%\GitHub CLI 没有生成过,也就没法检查。
检查结果
卸载完成后运行下面几条只读命令,最好开个新终端窗口:
gh --version
winget list --id GitHub.cli
Test-Path "$env:ProgramFiles\GitHub CLI"
Test-Path "$env:APPDATA\GitHub CLI"
gh --version报「无法识别」,说明 GitHub CLI 已经从 PATH 里没了;打印出版本号,说明卸载没完成,或者机器上还有另一个安装。winget list正常完成且没有匹配,才说明包记录已经没了;列出一行,说明卸载没完成。Test-Path "$env:ProgramFiles\GitHub CLI"返回False,说明程序目录已经没了;返回True,说明那里还有文件。Test-Path "$env:APPDATA\GitHub CLI"返回True,说明登录令牌或设置还在,还没退出登录的先跑gh auth logout,再自己删这个文件夹。
用 winget 安装时
winget uninstall 运行的是「设置 › 应用」用的同一个 MSI 卸载器,删的是同一批程序文件,不会动 %APPDATA%\GitHub CLI,也不会让任何账号退出登录。
账号与订阅
卸载不会让你从 GitHub 退出登录,也不会让 gh auth login 生成的令牌失效。卸载前跑一次 gh auth logout 可以确保令牌失效,或者事后去 GitHub 账号设置里吊销它。
Mole 会列出什么
对按机器安装的 winget 版 GitHub CLI,卸载审查列表是空的:MSI 卸载器自己删掉了 Program Files\GitHub CLI、加过的机器 PATH 条目和它的注册表键,没有什么留给 Mole 处理。Mole 也不会单独列出程序目录这一行,因为安装程序登记时没写安装位置;想确认 Program Files\GitHub CLI 是不是真的没了,自己去看一眼。%APPDATA%\GitHub CLI 不管怎样都不在这张列表里。
这次检查覆盖了什么
测试的是通过 winget 按机器安装的 GitHub CLI 2.101.0,用的是 arm64 MSI 包,提权环境。测试全程没跑过任何 gh 命令,所以已登录状态、它的配置文件夹,以及卸载一个已登录的安装,都没有测试到。
