【问题标题】:How to use git with ssh on github https repository addresses?如何在 github https 存储库地址上使用 git 和 ssh?
【发布时间】:2015-12-05 13:24:49
【问题描述】:

我想将一些 github 存储库克隆到只能通过 SSH 隧道访问 github 的计算机上。

我可以使用 ssh 地址毫无问题地克隆简单的存储库。

当仓库包含子模块时,访问方式由.gitsubmodules控制,通常默认为https地址(因为这是github推荐的方式)。

有没有办法告诉 git 子模块它应该始终使用 ssh 访问,即使子模块的地址是 https 地址?

不得不克隆一个 repo 并修改它的 .gitsubmodules 只是为了能够通过 ssh 隧道克隆它似乎是迟钝的。在.gitsubmodules 文件中硬编码访问方法而不是让您的用户选择适当的方法似乎也很迟钝。我想一定有更好的方法,但我找不到。

【问题讨论】:

    标签: git github ssh https


    【解决方案1】:

    你可以使用 git 重写 urls

    git config --global url."https://".insteadOf git://
    

    您可以在表达式中包含主机名以将重写限制为特定主机

     git config --global url."https://github.com".insteadOf git://github.com
    

    如果您不希望重写规则是全局的,那么只需将其添加到本地范围即可。

    url.<base>.insteadOfhttp://git-scm.com/docs/git-config 下查看更多信息

    【讨论】:

    • 我更喜欢这个答案,但如果某些 repos 只能通过 HTTPS 获得,我不知道如何在全局范围内设置它(除非你特别不能像 OP 那样)
    • 也许 url."git@github.com:".insteadOf github.com 将适用于 github,将尝试(更新:它有效,谢谢!)
    • @osxi,您可以将重写规则添加到本地范围。
    • @gnzlbg,感谢您的反馈,我澄清了答案
    【解决方案2】:

    更改.gitmodules 中的值是更改子模块协议的常用方法,后跟git submodule sync 以更新远程存储库位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 2015-12-21
      • 2021-05-06
      • 2013-09-02
      • 2013-03-22
      • 2019-10-03
      • 2020-08-29
      • 1970-01-01
      相关资源
      最近更新 更多