vscode 1.74+ 同步失败主因是 sync.gist/sync.provider 非空导致强制降级至失效的 github 路径,需清空二者、关闭再开启同步并仅用 microsoft 账户登录;extensions 和 ui state 必须手动勾选,插件须为 location: sync 才同步,且所有变更均需手动上传下载。

Settings Sync 服务路径选错导致全程静默失败
VSCode 1.74+ 已彻底移除 GitHub 同步后端,但旧配置项 sync.gist 和 sync.provider 仍会被读取。只要它们非空,VSCode 就会强制降级到已下线的 GitHub 流程,结果是:登录页空白、重定向循环、状态栏云图标灰色——全程无报错提示。
必须手动清理:
- 设置中搜索
sync.gist,清空其值 - 再搜
sync.provider,同样清空 - 命令面板运行
Settings Sync: Turn Off,再运行Settings Sync: Turn On
此时只会弹出 Microsoft 账户登录选项。用 outlook.com 或 hotmail.com 账户登录才有效,GitHub 账号在此路径下完全不可用。
Extensions 同步开关默认关闭且不提醒
即使你成功登录 Microsoft 账户,Extensions 同步仍是默认关闭的。首次开启同步时弹出的“Choose what to sync”面板里,它不会自动勾选——漏掉这一项,新设备就永远看不到你的插件列表。
务必手动勾选这五项:
SettingsExtensionsKeybindingsUser Snippets-
UI State(主题、布局、侧边栏折叠状态等全靠它)
特别注意:UI State 是独立开关,默认关闭。没开它,哪怕同步了 "workbench.colorTheme": "One Dark Pro",目标设备没装该主题也会静默 fallback 到 Default Dark+,看起来像同步失败。
插件安装来源决定是否参与同步
VSCode 把扩展按安装方式分三类:Sync、User、Workspace。只有 Location: Sync 的插件才算真正进入同步流;手动用 code --install-extension、拖拽 VSIX 或命令行安装的,默认都是 User 类型,不会上传,也不会被覆盖。
验证方法:
- 命令面板运行
Developer: Show Running Extensions - 检查每行末尾的
Location字段 - 若为
User,需在已同步设备上重新通过扩展视图点击安装,或运行Extensions: Install Extension from VSIX…
跨平台插件(如 ms-vscode.powershell)会被静默跳过,不报错、不警告、也不进冲突列表——Windows 上配好的插件,同步到 macOS 后直接消失。
同步不是实时监听,改完不上传等于没改
VSCode 同步没有后台监听机制。每次修改 settings.json、装/卸插件、更新代码片段后,都必须手动运行 Preferences: Sync Now 或 Settings Sync: Upload Settings,否则远端永远不知道变更。
另一台设备要获取这些变更,也得手动运行 Settings Sync: Download Settings。状态栏显示 “Synced” 只代表上一次动作完成,不代表当前配置与云端一致。
最容易忽略的是:UI State 开关、Location: Sync 标识、以及每次变更后的手动上传动作——它们都不报错,只静默失效。











