使用 VSCode 远程 SSH 时,“git push”行为会根据我的“登录目录”而有所不同

使用 VSCode 远程 SSH 时,“git push”行为会根据我的“登录目录”而有所不同

我正在使用 VSCode 的远程 SSH 实用程序访问托管在 Google Cloud 上的虚拟机。我的本地机器是 Mac。

那里有我正在处理的几个 GitHub 存储库。昨天我遇到了一些问题,最后不得不摆弄我的 SSH 密钥,我想我搞砸了一些东西。

我直接登录虚拟机进入其中一个目录(即my_VM:~/foo)。需要说明的是,我没有登录主~目录,然后cd foo直接登录~/foo。这是 VSCode 在简单 SSH 之上提供的功能。

我还认为,值得注意的是,foo昨天在我摆弄 SSH 密钥后克隆了它。

并尝试过git push,但却得到了回应Username for 'https://github.com':,这从未发生过。

我搜索了一下,显然只要git clone通过 HTTP 使用就会发生这种情况,这很奇怪,因为这种情况从未发生过。

但后来,当我决定关闭连接并重新连接到另一个目录时,事情变得非常奇怪~/bar。当我在那里尝试时git push,它成功了,没有用户名请求。

然后,如果我这样做cd ../foo并再试git push一次,它仍然有效!

因此,如果我连接到my_VM:~/foogit似乎没有存储我的凭据。但如果我连接到my_VM:~/bar,则有。

foo和均bar显示相同的输出git remote show origin

* remote origin
  Fetch URL: https://github.com/wasabi/foo  # or /bar
  Push  URL: https://github.com/wasabi/foo  # or /bar
  [...]

知道这意味着什么吗?如何解决它,以便 Git 再次记住我的凭据?我特别担心,因为我今天克隆了其他几个存储库,从现在开始它们都要求用户名;似乎只有较旧的存储库(在昨天摆弄密钥之前)在“正常”工作。

相关内容