VSCode源码控制与终端冲突:version.json类型变更问题求助
解决方案:WSL Git与VSCode软链接路径错误及typechange问题
问题根源
Windows与WSL的文件系统对符号链接(软链接)的实现机制不同,导致Git跨环境识别时出现路径错误,将软链接标记为typechange变更,且常规撤销操作无法清除该状态。
分步解决步骤
1. 清理并重建正确的软链接(WSL终端操作)
- 进入项目根目录,删除异常的软链接:
rm src/version.json - 从Git仓库恢复原始软链接:
git checkout -- src/version.json - 若软链接为本地生成,务必在WSL内重新创建(不要用Windows的
mklink):ln -s ../实际文件路径/version.json src/version.json
2. 配置Git支持跨环境软链接
- 在WSL终端开启Git软链接支持:
git config core.symlinks true - 配置VSCode使用WSL的Git(避免Windows Git的兼容性问题):
打开VSCode设置,搜索git.path,设置值为/usr/bin/git(可通过which git在WSL终端确认具体路径)
3. 调整lint-staged配置,避免误处理软链接
修改package.json中的lint-staged配置,排除软链接文件,防止格式化工具误修改:
"lint-staged": { "src/**/*.{js,jsx,ts,tsx}": [ "eslint --fix" ], "src/**/*.{css,js,jsx,ts,tsx}": [ "prettier --write" ], "!src/version.json": [] }
4. 彻底重置Git缓存(若上述步骤无效)
- 清除Git对该文件的缓存记录:
git rm --cached src/version.json - 重新将软链接加入Git跟踪:
git add src/version.json - 提交变更:
git commit -m "Fix symlink issue for version.json"
内容的提问来源于stack exchange,提问作者Bernardo Marques
相关产品推荐
相关产品推荐

