Git for Windows/WSL2/VS Code 的非常奇怪的问题

the*_*lar 6 git git-bash visual-studio-code windows-subsystem-for-linux wsl-2

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

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

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

我将我的存储库解压回 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
Run Code Online (Sandbox Code Playgroud)

然而,在 VS Code 中(我通过转到目录并code .在 Windows 终端中输入我的 WSL 配置文件来访问该代码),它显示我有 950 个待处理的更改。

在此输入图像描述

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

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

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

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

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

the*_*lar 8

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

\n

这并不能阻止 Windows 版的 Git 混淆,但是,它确实使 VS Code 能够使用 WSL 版本的 git,而不是 Windows 版的 Git。

\n

因此,结果是 VS Code 现在知道 WSL2 实例中 git 存储库/工作目录的实际状态。

\n

谢谢你的帮助,TT。我真的很感谢您的回复,我确实从他们身上学到了一些东西。\xe2\x99\xa5

\n