如何在 Mac 上卸载 GitX
先保存仓库里尚未完成的修改,再退出 GitX。本篇以 Mac 下载版为主,Homebrew 渠道在下文单列。
退出并移除 App
保留仓库和系统 Git 工具,当前 cask 的偏好路径与实测 App 不同。
从 GitX 的退出入口关闭 App。打开系统设置 › 通用 › 登录项与扩展,如果有属于 GitX 的登录项,关闭它。完成备份后,在访达把 /Applications/GitX.app 移到废纸篓,先留着废纸篓,确认需要的数据已保存。
项目说明。
检查本地数据
在访达按 Shift + Command + G,逐条打开完整路径,先把要留的内容复制到其他目录,再决定是否把这一项移到废纸篓。下面包含实测记录和当前 Homebrew cask 的目标,某个路径不存在时不用创建它,带 * 的条目是匹配范围,需要逐个检查实际文件,不是一个字面文件名。
| 位置 | 内容与处理 |
|---|---|
~/Library/Preferences/net.phere.GitX.plist |
偏好设置,要恢复设置时保留 |
~/Library/Caches/nl.frim.GitX |
缓存、日志或网页状态,退出 App 后可按需移走 |
~/Library/Preferences/nl.frim.GitX.plist |
偏好设置,要恢复设置时保留 |
~/Library/Saved Application State/nl.frim.GitX.savedState |
窗口恢复状态,不再需要时可移走 |
cask 的偏好名称与实测路径不同,不能据此认定当前 App 一定写入了那些目录,两组路径需要分别看。
用 Homebrew 安装时
先卸载而不执行 zap。
brew uninstall --cask gitx
这条命令移除 cask 管理的 App 和它管理的 gitx 命令链接,不会执行上面的 zap 数据清单。
直接执行下面的命令会按 cask 的整个 zap 清单删除数据,不会读取 Mole 的勾选状态。只有备份并确认这些目标都可以移除时才用。
brew uninstall --cask --zap gitx
当前 zap 目标为 ~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/nl.frim.gitx.sfl*、~/Library/Caches/nl.frim.GitX、~/Library/Preferences/nl.frim.GitX.plist、~/Library/Saved Application State/nl.frim.GitX.savedState。
zap 会移走以上目标,包括其中的设置或用户数据,要保留任一项时使用不带 zap 的命令。当前 cask。
检查结果
ls -ld '/Applications/GitX.app'
pgrep -ifl '/Applications/GitX[.]app/'
列出 App 路径表示本体仍在,No such file or directory 表示这个路径不在,Permission denied 则没有完成检查。此命令只检查本体所在位置,不证明其他位置没有副本、后台服务或用户数据。
pgrep 列出结果表示仍有命令行匹配这个 App 路径的进程,没有输出只表示没有这种匹配,不能证明独立助手或其他安装副本都已退出,报错时这一步未确认。
Mole 会列出什么
~/Library/Preferences/net.phere.GitX.plist默认勾选。
这些默认状态以关闭「卸载时一并移除数据和配置」为准,这个选项默认关闭,开启后会勾选符合条件的待确认 App 数据,共享数据和受保护项目仍按原有边界单独确认。Mole 只有在整个 zap 范围通过检查时才会调用 Homebrew zap,未勾选项、共享路径、超出审查范围的路径或无法支持的指令都会阻止 zap,已选残留仍走 Mole 自己的删除流程。
这次检查覆盖了什么
卸载使用源码构建的 Mole,首启扫描只覆盖部分路径,不证明应用可能生成的全部文件。
没有打开仓库,获取原生窗口超时后卸载官方 App。
