<p>SourceTree 在 macOS 上响应迟滞、加载慢或认证错误,多因索引缓存与认证残留文件堆积损坏;需清理 Application Support 中的 opentabs.xml 等文件、stauth-* 认证索引、plist 偏好设置、钥匙串凭证及 composition.cache 缓存。</p>

如果您在 macOS 上使用 SourceTree 进行版本管理,发现界面响应迟滞、仓库列表加载缓慢或频繁弹出认证错误,则很可能是 Sourcetree 的索引缓存与认证残留文件发生堆积或损坏。这些文件并非 Git 仓库本身的数据,而是 Sourcetree 在本地构建的元数据快照、凭证映射及 UI 状态缓存,长期未清理会干扰正常操作。以下是针对 macOS 平台 Sourcetree 索引类垃圾的多种清理路径与操作方法:
一、清除 Application Support 中的索引与状态缓存
SourceTree 将仓库索引、打开标签页状态、书签、用户主机配置等持久化数据存储于 ~/Library/Application Support/SourceTree/ 目录下。其中部分文件(如 opentabs.xml、bookmarks.xml、userhosts)虽非传统“索引”,但直接影响 UI 渲染与仓库识别逻辑,属于广义索引垃圾范畴。
1、确保 SourceTree 已完全退出(可在“活动监视器”中搜索 SourceTree 并强制结束所有相关进程)。
2、按下 Command + Shift + G 打开“前往文件夹”窗口。
3、输入 ~/Library/Application Support/SourceTree/ 并回车。
4、选中以下文件并移入废纸篓:opentabs.xml、bookmarks.xml、userhosts。
5、右键点击 Dock 中的废纸篓图标,选择 立即清空废纸篓。
二、删除 stauth-* 认证索引文件以重置凭证绑定
SourceTree 在 macOS 下将 Git 凭证(如 GitHub、GitLab 账户)以 stauth-* 命名格式写入 ~/Library/Application Support/SourceTree/,这些文件构成其内部认证索引表。当密码变更或域策略更新后,旧索引条目无法自动失效,导致 push/pull 操作持续失败或卡在静默认证阶段。
1、保持 SourceTree 关闭状态。
2、在 Finder 中使用 Command + Shift + G,输入路径:~/Library/Application Support/SourceTree/。
3、在该目录中查找所有以 stauth- 开头的文件(例如:stauth-github.com、ajiao@stauth-gitlab.qiyi.domain)。
4、将全部 stauth-* 文件拖入废纸篓。
5、清空废纸篓后重新启动 SourceTree,首次执行远程操作时将自动弹出凭证输入框。
三、重置偏好设置 plist 文件以消除 UI 索引错位
SourceTree 的用户界面行为、窗口布局、默认分支显示逻辑等由 com.torusknot.SourceTreeNotMAS.plist 文件控制。该文件若损坏或版本不兼容,会导致仓库树状索引渲染异常、分支过滤失效、提交历史加载空白等问题,属于深层索引逻辑污染。
1、关闭 SourceTree 及所有相关进程。
2、打开终端,执行以下命令彻底删除偏好设置:
defaults delete com.torusknot.SourceTreeNotMAS
3、为确保生效,可额外执行:
rm ~/Library/Preferences/com.torusknot.SourceTreeNotMAS.plist
4、重启 SourceTree,应用将重建初始偏好设置,UI 索引结构恢复出厂状态。
四、清理钥匙串中 SourceTree 关联的凭证索引项
macOS 钥匙串是 SourceTree 认证体系的底层支撑,其存储的“应用程序密码”条目(如名称含 SourceTree 或目标 Git URL)构成凭证索引主干。若钥匙串中存在过期、重复或冲突的 SourceTree 条目,会干扰新索引生成,造成反复弹窗或静默拒绝。
1、打开“钥匙串访问”应用(可通过 Spotlight 搜索启动)。
2、在左上角搜索栏中输入 SourceTree,筛选结果。
3、在“登录”钥匙串的“应用程序密码”类别下,定位所有来源为 SourceTree 或匹配 Git 域名(如 gitlab.qiyi.domain)的条目。
4、逐个右键选择“删除”,确认操作。
5、重启 SourceTree 后,首次远程操作将触发全新凭证索引注册流程。
五、清除 SourceTree.exe_url_* 子目录中的 composition.cache
SourceTree 在 macOS 上通过 WebKit 渲染部分 UI 组件(如提交图谱、差异预览),其运行时生成的 composition.cache 文件位于动态子路径中,该文件属于临时索引缓存,损坏后易引发界面崩溃或白屏,但不会出现在常规 Application Support 主目录下。
1、确保 SourceTree 已关闭。
2、在 Finder 中使用 Command + Shift + G,输入路径:~/Library/Application Support/SourceTree.exe_*(通配符需手动展开匹配)。
3、在出现的多个类似 SourceTree.exe_url_xxx/3.4.10.0/ 的子目录中,逐层进入直至找到 composition.cache 文件。
4、将该文件直接拖入废纸篓。
5、清空废纸篓并重启 SourceTree,UI 索引渲染模块将重建缓存。



















