如何将到GitHub的连接从SSH更改为HTTPS?

如何将到GitHub的连接从SSH更改为HTTPS?,git,github,ssh,https,git-remote,Git,Github,Ssh,Https,Git Remote,我昨天在GitHub中创建了我的第一个存储库。在建立连接时,我使用SSH而不是HTTPS,因此我经历了一个痛苦的SSH密钥创建和连接过程。在某个时候,我被卡住了,连接失败了。在那一刻,我想知道如何恢复我启动的流程,并以HTTPS连接开始。令人高兴的是,今天我通过SSH实现了连接,但我想知道能够更改连接类型(SSH与HTTPS)的价值,以及是否有办法做到这一点。假设您的远程设备被称为源站,请运行 git远程设置url源https://... git远程设置url--推送源https://...

我昨天在GitHub中创建了我的第一个存储库。在建立连接时,我使用SSH而不是HTTPS,因此我经历了一个痛苦的SSH密钥创建和连接过程。在某个时候,我被卡住了,连接失败了。在那一刻,我想知道如何恢复我启动的流程,并以HTTPS连接开始。令人高兴的是,今天我通过SSH实现了连接,但我想知道能够更改连接类型(SSH与HTTPS)的价值,以及是否有办法做到这一点。

假设您的远程设备被称为
源站,请运行

  • git远程设置url源https://...
  • git远程设置url--推送源https://...
您可以使用
git remote-v
查看已配置的远程设备,它现在应该会显示更新的URL

有关更多详细信息,请参阅。

以下是一些别名(OneLiner),用于将您的回购协议从ssh切换到https并返回。假设您的默认遥控器名为
origin
,而您的遥控器名为github.com

alias git-https="git remote set-url origin https://github.com/$(git remote get-url origin | sed 's/https:\/\/github.com\///' | sed 's/git@github.com://')"
alias git-ssh="  git remote set-url origin git@github.com:$(    git remote get-url origin | sed 's/https:\/\/github.com\///' | sed 's/git@github.com://')"

它们比使其幂等所需的时间长了一点

如果要将本地修改推送到,最好保持ssh连接。阅读一些ssh教程,并配置私钥和公钥,以避免多次键入密码。@BasileStarynkevitch,ssh和HTTPS连接都可用于
推送到GitHub(和许多其他主机)。我通常通过文本编辑
.git/config
文件,而不是
git remote set url
。你只需要在一些repo服务器上观察两者的不同url结构。我经常使用https作为获取url,ssh作为推送url,优点是我不需要为随机获取解锁ssh密钥。文档说:
使用--Push,推送url被操纵,而不是获取url。
但是什么是
推送url
呢?谢谢。这是一个适用于非github.com和路径中有或没有前导
/
的url的版本:
git remote set url origin$(git remote get url origin | sed's/^git@(.*):\/*\(.*)。git/https:\/\/\1\/\2.git/')