为什么git remote -v不会显示与我的.git / config相同的url?

时间:2018-04-19 16:15:44

标签: git ssh https

我正在尝试将我的遥控器从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

的预期网址

2 个答案:

答案 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全局配置

检查全局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 -vgit config --get remote.origin.url相同的网址。

我在一个同事那里收到的VM环境中遇到了同样的问题,由于我没有意识到他们已经添加了这些全局配置设置,所以我不知道发生了什么。似乎有人在由于某种原因阻止对git urls的访问的环境中将其用作解决方法。

确认ssh身份验证正常

除了检查git的配置设置外,确保对git的ssh身份验证工作正常也很有帮助。

ssh -Tv git@github.com

如果成功,您将看到类似以下的消息。任何类型的错误都表明您的ssh密钥,ssh设置或与ssh相关的环境存在问题,您应该首先检查该问题。

Hi userName! You've successfully authenticated, but GitHub does not provide shell access.