首页 > 解决方案 > Git for Windows/WSL2/VS Code 的非常奇怪的问题

问题描述

我有 Windows 10,并且正在使用 VS Code、Git for Windows 和 WSL2 以及 Ubuntu 20.04 LTS(我通过 Windows 终端访问)。

我需要重置我的计算机,所以我在我的 Ubuntu 上对本地存储库进行了 tar.gz 处理,并将该 tar.gz 存储在我的辅助驱动器上。

重置后,我重新安装了所有应用程序。

我将我的 repo 解压缩回 Ubuntu 中的同一位置,然后我做了一个 chown -R gesslar:gesslar /path 以确保它上面有我当前的 ID。

在 Windows 终端中,使用 WSL2 配置文件,我 cd 到 /path 并执行 git status,它说我没有要提交的更改。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

但是,在 VS Code 中,我通过转到目录并code .在 Windows 终端中输入我的 WSL 配置文件来访问它,它说我有 950 个待处理的更改。

在此处输入图像描述

如果我使用 Git Bash,我会得到类似的读数,它会显示大量标记为已删除的文件 在此处输入图像描述

对我来说超级奇怪的是,尽管被标记为已删除,但该文件实际上就在那里。 在此处输入图像描述

在未跟踪的文件下,它说是新的文件实际上并不存在。

如果有人对此有什么奇怪的想法,我将不胜感激。我怀疑它与适用于 Windows 的 Git 有关,因为我认为 VS Code 正在使用它来确定更改,并且在 Git Bash 中我看到了这种奇怪之处。

注意 我知道有些人可能会建议我只是重新克隆,但我的工作目录是生产的副本,我们的 .gitignore 忽略了我需要在工作目录中使用的数千个数据文件,它们到处都是. 如果可能的话,重建环境绝对是最后的努力。

标签: gitvisual-studio-codewindows-subsystem-for-linuxgit-bashwsl-2

解决方案


这听起来真的很愚蠢,但是,我发现没有为 VS Code 安装远程 WSL 扩展。

这不会阻止 Git for Windows 对什么是什么感到困惑,但是,它确实使 VS Code 能够使用 git 的 WSL 版本,而不是 Windows 的 Git。

因此,结果是 VS Code 现在知道我的 WSL2 实例中我的 git repos/working 目录的实际状态。

谢谢你的帮助,TTT。我非常感谢您的回复,我确实从他们那里学到了一些东西。♥</p>


推荐阅读