我正在尝试将我的遥控器从HTTPS切换到SSH。首先,我验证它是以HTTPS开头的。我跑:
$ git remote get-url origin
结果:https://<repo>.git
然后我运行$ git remote set-url origin git@github.com:<repo>.git
然后我运行这样设置我想要的远程URL:
$ git remote get-url origin
并且它仍然返回https://<repo>.git
!
...但是,如果我跑:
git config --get remote.origin.url
然后我找回git@github.com:<repo>.git
答案 0 :(得分:0)
如果可以,请尝试删除然后再添加origin
。
删除原点
$ git remote rm origin
验证原点是否被删除。第二个命令应该给你一个错误。
$ git remote -v
$ git pull
现在添加原点并验证,
$ git remote add origin git@github.com:username/repository-name.git
$ git remote -v
答案 1 :(得分:0)
检查全局git配置中是否有任何insteadOf设置,这些设置会自动将git url替换为https url。
git config -l
...
url.https://github.com/.insteadof=git@github.com:
url.https://.insteadof=git://
...
取消设置:
git config --global --unset-all url.https://github.com/.insteadof
git config --global --unset-all url.https://.insteadof
或者,您可以使用git config --global --edit
在编辑器中编辑全局配置(nano,vim等)并删除相关部分。
再次测试,希望它将显示与git remote -v
和git config --get remote.origin.url
相同的网址。
我在一个同事那里收到的VM环境中遇到了同样的问题,由于我没有意识到他们已经添加了这些全局配置设置,所以我不知道发生了什么。似乎有人在由于某种原因阻止对git urls的访问的环境中将其用作解决方法。
除了检查git的配置设置外,确保对git的ssh身份验证工作正常也很有帮助。
ssh -Tv git@github.com
如果成功,您将看到类似以下的消息。任何类型的错误都表明您的ssh密钥,ssh设置或与ssh相关的环境存在问题,您应该首先检查该问题。
Hi userName! You've successfully authenticated, but GitHub does not provide shell access.