VSCode资源管理器无法更新Git文件变更标识(已修改/未跟踪)
问题:VSCode提交Git文件后资源管理器UI未更新,仍显示过时的M/U标识
问题描述
提交所有已修改和未跟踪文件后,Git提示nothing to commit, working tree clean,但VSCode资源管理器UI未同步更新,文件仍保留已修改(M)、未跟踪(U)的标识,必须重新加载窗口才能清除这些过时标记。
场景
- 我的MacOS Apple Silicon设备:
- 特定Git仓库→出现问题
- 克隆其他远程Git仓库→无问题
- 本地新建Git仓库→出现问题
- 其他Windows设备→无问题
- 其他MacOS设备→无问题
已尝试操作
- 重新安装VSCode,问题仍存在
环境信息
- VSCode版本:1.76.2(与其他正常MacOS设备同步了相同设置)
- Git版本:2.40.0
- 系统:MacOS Apple Silicon
- 除以下配置外均为默认设置
VSCode settings.json
{ "workbench.colorTheme": "Atom One Dark", "workbench.iconTheme": "material-icon-theme", "files.autoSave": "afterDelay", "editor.tabSize": 2, "editor.wordWrap": "on", "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "[markdown]": { "editor.wrappingIndent": "same" }, "prettier.bracketSameLine": true, "remote.SSH.connectTimeout": 60, "remote.SSH.remotePlatform": { "ubuntu-VirtualBox": "linux" }, "remote.SSH.showLoginTerminal": true, "remote.SSH.useLocalServer": false, "window.zoomLevel": 1 }
Git配置
credential.helper=osxkeychain user.email=blah user.name=blah core.editor=code --wait core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true core.ignorecase=true core.precomposeunicode=true
解决建议
1. 禁用Git文件系统监视优化
在VSCode的settings.json中添加以下配置,强制关闭文件系统监视的优化逻辑,避免VSCode遗漏Git状态变更:
"git.useFileSystemWatcher": false
添加后重启VSCode,测试提交后UI是否正常更新。
2. 重置Git仓库索引缓存
针对出现问题的仓库,在终端执行以下命令重置索引,清除可能的缓存异常:
git rm -r --cached . git add . git commit -m "Reset git index to fix UI status sync issue"
提交完成后观察VSCode资源管理器的标识是否同步更新。
3. 重置Git扩展状态
- 打开VSCode的「扩展」面板,找到内置的「Git」扩展
- 先禁用该扩展,等待10秒后重新启用,再进行提交测试
4. 调整自动保存时机
当前设置为"files.autoSave": "afterDelay",尝试改为"onFocusChange"或"off",避免自动保存与Git状态检测冲突:
"files.autoSave": "onFocusChange"
5. 检查仓库目录权限
确保VSCode对出现问题的仓库目录有完整读写权限:
- 右键仓库文件夹,选择「显示简介」
- 在「共享与权限」中,确认当前登录用户拥有「读与写」权限
- 点击右下角锁图标解锁后,勾选「应用到包含的项目」,之后重启VSCode
内容的提问来源于stack exchange,提问作者Kakamotobi
相关产品推荐
相关产品推荐

