如何让git默认使用ssh而不是https来访问新的软件仓库

现在,当我在设置页面上的GitHub上创建新的存储库时,我得到:

git remote add origin https://github.com/nikhilbhardwaj/abc.git
git push -u origin master

每当我必须推送提交时,我需要输入我的GitHub用户名和密码。

我可以手动将其更改为

git@github.com:nikhilbhardwaj/abc.git

.git/config 。 我觉得这很刺激 - 有什么办法可以配置git默认使用SSH?


将存储库的原始分支设置为SSH

GitHub存储库设置页面只是一个建议的命令列表(现在GitHub建议使用HTTPS协议)。 除非你有管理权限访问GitHub的网站,否则我不知道改变他们建议的命令的方法。

如果您更愿意使用SSH协议,只需像这样添加远程分支(即使用此命令代替GitHub建议的命令)。 要修改现有分支,请参阅下一节。

$ git remote add origin git@github.com:nikhilbhardwaj/abc.git

修改预先存在的存储库

正如您所知道的,要将预先存在的存储库切换为使用SSH而不是HTTPS,您可以在.git/config文件中更改远程URL。

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    -url = https://github.com/nikhilbhardwaj/abc.git
    +url = git@github.com:nikhilbhardwaj/abc.git

一个捷径是使用set-url命令:

$ git remote set-url origin git@github.com:nikhilbhardwaj/abc.git

有关SSH-HTTPS交换机的更多信息

  • “为什么Git总是要求我的密码?” - GitHub帮助页面。
  • GitHub切换到智能HTTP - 相关的StackOverflow问题
  • 手腕友好的Git用法的凭证缓存 - GitHub博客文章关于HTTPS,以及如何避免重新输入密码

  • GitHub上

    git config --global url.ssh://git@github.com/.insteadOf https://github.com/
    
  • 到位桶

    git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/
    
  • 这告诉git在连接到GitHub / BitBucket时总是使用SSH而不是HTTPS,所以默认情况下您将通过证书进行身份验证,而不是提示输入密码。


    Trevor提供的回复是正确的。

    但是,您可以直接在.gitconfig添加.gitconfig

    # Enforce SSH
    [url "ssh://git@github.com/"]
      insteadOf = https://github.com/
    [url "ssh://git@gitlab.com/"]
      insteadOf = https://gitlab.com/
    [url "ssh://git@bitbucket.org/"]
      insteadOf = https://bitbucket.org/
    
    链接地址: http://www.djcxy.com/p/45223.html

    上一篇: How do I get git to default to ssh and not https for new repositories

    下一篇: Commit a String with JGit