VSCode + WSL Remote + Git:同步更改需要永远

Eli*_*rin 9 git visual-studio-code windows-subsystem-for-linux

我正在远程使用 VSCode 进入我的项目文件夹(符号链接)到 WSL 2 VM。我使用 SSH 和终端从 Bitbucket 克隆了我的 repo。

在左下角,它表示WSL: Ubuntu,所以我目前正在远程使用它。一切正常
如果我单击 Git 分支指示器,我可以看到本地分支和远程分支。都好

问题是,当我在本地提交后单击以同步所有内容时,它会永远旋转。嗯,不是真的,我在永远发生之前就失去了耐心……目前的测试大约需要 30 分钟。

如果我git push进入终端,一切都会按预期进行。

任何人都知道为什么要这样做?我该如何解决这个问题?

我在 VSCode 中的 Git 输出不断返回这个git rev-parse --show-toplevel
我 在 Bitbucket 上git config为 user.name 和 user.email
设置了 SSH 密钥。Windows 和 WSL 2 使用相同的公钥/私钥。

谢谢

Eli*_*rin 10

2021-02-05 更新

这个问题最近有很多观点,我觉得我需要做一个更彻底的解释。最初的答案是在 WSL 2 仍处于测试阶段时编写的。现在一切都在发展,从 SSH 密钥中删除密码可能会导致一些漏洞。因此,在进一步讨论之前,请查看这篇文章是否可以使用带有空密码短语的 SSH 密钥?

问问自己移除它是否安全。

我不知道原始问题是否还有问题。在我写下这个问题后不久,我就放弃了 Web 开发的 WSL。

原始答案

我解决了我的问题。因此,对于那些想要尝试 WSL 2 并遇到此问题的人来说,问题在于 SSH 密钥的密码短语。

https://code.visualstudio.com/docs/remote/troubleshooting#_resolving-hangs-when-doing-a-git-push-or-sync-on-an-ssh-host

在 SSH 主机上执行 Git 推送或同步时解决挂起问题
如果您使用 SSH 克隆 Git 存储库并且您的 SSH 密钥具有密码短语,则 VS Code 的拉取和同步功能在远程运行时可能会挂起。

要么使用不带密码的 SSH 密钥,要么使用 HTTPS 进行克隆,要么从命令行运行 git push 来解决该问题。

如果你想删除你的密码,请使用$ ssh-keygen -p这个问题中提到的:https : //stackoverflow.com/a/112409/5543999