git - 如何在 github https 存储库地址上使用 git 和 ssh?

标签 git github ssh https

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

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

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

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

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

最佳答案

您可以使用 git 重写 url

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

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

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

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

url.<base>.insteadOf 部分查看更多信息在 http://git-scm.com/docs/git-config

关于git - 如何在 github https 存储库地址上使用 git 和 ssh?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481859/

相关文章:

GitHub Hook 无法通过 SSL 工作

git - 无法完成gitolite的安装

git - 我如何 "undo"a --single-branch 克隆?

Git LFS 拒绝正确跟踪我的大文件,直到我执行以下操作

python - 无法通过 python 连接到 ssh

windows - 使用 SSH 从 Linux Box 执行 Perl 脚本导致 "The local device name is already in use"

git - 如何保存暂存区的当前状态?

git - 如何中止 stash pop?

ssh - 如何通过ssh禁用root密码登录,同时允许基于证书的登录

git - 使用 git 模拟全局修订号