我在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
这应该使你的正常操作成功。