cc-switch老是自动删除我的环境变量
Quick fix
冲突弹窗直接关闭不会删除环境变量;想彻底消除需删除 shell 配置或 Hermes config.yaml 中的对应项;v3.17.0 弹窗无法关闭是已知问题。
Symptom
Section titled “Symptom”打开cc-swtich就老是说环境变量冲突,就立马给删除了cc-switch 的工作机制是写配置文件,而 shell 配置(如 `~/.bashrc`/`~/.zshrc`)中的环境变量优先级更高,会覆盖 cc-switch 写入的配置,因此 cc-switch 会弹出环境冲突检测提示。维护者在 #2071 中说明,这个检测“不去管它,直接叉掉的话,它是不会删除环境变量的”,所以用户看到的“自动删除”多数是误判。 但 #5558 报告了同一冲突提示链路的另一个问题:在 v3.17.0 中先打开设置页面再退出 cc-switch,之后如果检测到环境变量冲突,弹出的对话框无法关闭,目前没有已确认的修复版本。另有 #3051 反馈某些新增环境变量在 cc-switch 中无法删除并显示由 Hermes 托管;评论指出只删数据库无效,需从 Hermes 的 config.yaml 中移除对应项。
在冲突提示弹出时,直接点击右上角关闭(叉掉),不要执行选择或修复操作。该操作不会删除 `~/.bashrc` 等文件中的环境变量。
若想彻底消除冲突,编辑 shell 启动文件,注释或删除对应环境变量,例如 `GEMINI_API_KEY=xxxx`。
~/.bashrc(或 ~/.zshrc) # 删除或注释下面这行即可消除冲突提示# GEMINI_API_KEY=xxxx如果变量显示由 Hermes 托管且无法在 cc-switch 中删除,打开 Hermes 的 `config.yaml`,移除对应环境变量配置;仅删除数据库不会生效。
如果冲突弹窗完全无法关闭(v3.17.0 打开设置页后退出可复现),退出 cc-switch 进程后重新打开作为临时处理。目前未见已确认修复版本。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 3 个真实 issue
- 为什么 cc-switch 要删除我的环境变量?
- 它并不会主动删除。cc-switch 检测到 shell 环境变量会覆盖配置文件写入的配置,所以弹出冲突提示;直接叉掉弹窗不会删除环境变量。
- 删数据库能解决 Hermes 环境变量无法删除的问题吗?
- 不能。评论中已确认“删数据库没用的,源头在 Hermes 的 config.yaml 里,去掉就彻底消失了”。
- 冲突弹窗无法关闭怎么办?
- 这是 v3.17.0 的已知现象,可先退出 cc-switch 进程再重新打开作为临时处理,等待修复。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。