在WSL上使用SSH向Azure DevOps推送代码失败



我在Windows10和Ubuntu上使用WSL2。我已经成功地设置了SSH,即IT部门已经为端口22定义了防火墙规则。然而,如果将代码推送到空的DevOps Repo,我会遇到问题,如果我这样做

git push --set-upstream origin master

它询问我的密码

Password for 'https://organisationname@dev.azure.com'

然而,当SSH被定义时,不应该问我密码(我甚至不知道它)。我也在本地做了第一次提交,所以肯定有代码要推送。它似乎不会为push命令使用我的SSH密钥。所以克隆另一个远程repo是成功的:

git clone git@ssh.dev.azure.com:v3/COMPANY-IT/COMPANY%20IT/COMPANY%20IT

所以我尝试了我的本地代码(同时我清空了远程repo)

git push --set-upstream git@ssh.dev.azure.com:v3/COMPANY-IT/COMPANY%20IT/COMPANY%20IT

但是结果是

error: src refspec git@ssh.dev.azure.com does not match any

如何将代码推送到远程仓库?为什么我需要为clone命令指定ssh部分?原点之前已经用

定义过
git remote add origin ...

问题是我的帐户权限不足。在管理员修改后

git push -u origin --all

立即工作。该命令返回访问权限可能缺失的提示。我发现我还遗漏了一个命令

中的分支
git push --set-upstream master

是正确的

在您的示例中,看起来远程当前是HTTPS远程。要将其更改为新的SSH远程,可以这样写:

$ git remote set-url origin git@ssh.dev.azure.com:v3/COMPANY-IT/COMPANY%20IT/COMPANY%20IT

这应该使你的正常操作成功。

最新更新