VS Code源代码管理混入OneDrive出现万条待处理更改解决方案咨询
问题原因
这不是GitHub扩展的故障,核心是你当前打开的工作区对应的Git仓库根目录层级设错了,误把包含OneDrive目录的上层文件夹(甚至是用户个人文件夹)初始化成了Git仓库,Git会递归扫描该路径下的所有文件,才会出现上万条pending changes。OneDrive自身有文件同步锁和权限保护,直接在Source Control面板操作删除/移除文件会被拦截,重置扩展根本碰不到Git仓库的本地配置,自然解决不了问题。
解决步骤
- 先关闭VS Code,打开系统资源管理器,开启「显示隐藏项目」选项:
如果你发现.git隐藏文件夹不在你原本要托管的代码项目目录里,而是在OneDrive的上层目录、或是Windows用户根目录下,直接删除这个位置错误的.git文件夹即可。注意不要误删你代码项目目录内正常存在的.git文件夹,否则会丢失该项目的本地Git提交记录。 - 如果找不到错放的
.git位置,打开PowerShell/终端,切换到VS Code当前打开的工作区路径,执行命令:
命令输出的路径就是当前被Git识别为仓库根目录的位置,进入该路径删除对应的git rev-parse --show-toplevel.git文件夹即可。 - 删除错误的
.git文件夹后重新打开VS Code,只打开你真正需要推送的代码项目文件夹,在Source Control面板重新初始化仓库,后续推送就不会再扫描到OneDrive里的文件。 - 如果你原本的项目Git仓库是正常的,只是误把OneDrive路径加入了跟踪范围,直接打开项目根目录下的
.gitignore文件,新增一行排除规则:
保存后点击Source Control面板的刷新按钮,所有OneDrive下的文件就会被移出待更改列表。**/OneDrive/
操作提示:如果删除
.git时提示文件被占用,先退出OneDrive同步进程再尝试删除即可。
内容的提问来源于stack exchange,提问作者Maxgoodman07
相关产品推荐
相关产品推荐

