VSCode/VSCodium切换分支后误显示Git Gutters问题与解决
VSCodium中Git软链接仓库分支切换后误报变更问题
环境信息
VSCodium版本:1.75.1、1.76
问题现象
切换分支后,编辑器显示文件存在未提交变更,但仓库实际无任何未提交内容:源代码控制标签未显示未提交项,git diff也无输出。该现象表现为编辑器似乎在将当前分支与打开编辑器前所在的分支对比,通过外部终端执行git switch切换分支也会触发此问题。唯一临时解决方式是重载VSCode窗口,但再次切换分支后问题会复发,且在测试仓库中无法复现。
排查结论
- 仅在
.git为软链接指向其他文件夹的仓库(如AOSP仓库)中复现该问题; - 无软链接的仓库不受影响;
- 确认编辑器侧边的变更提示条为Git Gutters;
- 已在VSCode官方Issue追踪器提交问题
临时解决方案
初始脚本
编写以下脚本并配置到VSCode的settings.json中("git.path": "/home/yaro/set-actual-git-dir"):
#!/bin/bash git --git-dir="$(realpath .git/)" "${@}"
适配Git Blame扩展的脚本
因上述脚本导致Git Blame扩展失效,更新脚本如下:
#!/bin/bash if [ -z "$VSCODE_GIT_COMMAND" ]; then git "${@}" else git --git-dir="$(realpath .git/)" "${@}" fi
该脚本仅为VSCode核心Git命令设置--git-dir,不影响扩展(如Git Blame)的正常运行。
内容的提问来源于stack exchange,提问作者Yaro Slav
相关产品推荐
相关产品推荐

