git - 我可以将 git 子模块与某种后备 URL 链接起来吗?如果 SSH 克隆失败,git 应该能够使用 https 克隆

标签 git ssh https clone portability

(这主要是在我使用 GitHub 时突然出现的问题,所以如果有任何解决方案是特定于 GitHub 的,我不太介意。但问题本身并不是特定于 GitHub 的,并且不需要任何解决方案'不一定是。)

您始终可以使用 https 克隆公共(public) GitHub 存储库:

git clone https://github.com/my-user-name/SDL-mirror

如果您有 GitHub 知道的 SSH key ,您还可以使用 SSH 克隆存储库:

git clone git@github.com:my-user-name/SDL-mirror.git

(我认为类似的选项适用于使用 Bitbucket 时。)

添加子模块时也有这两个选项。

添加子模块时,您通常会添加 SSH 版本,因此您可以在原地测试更改后直接从子模块提交。

但是那些试图克隆您的代码库的人呢?他们可能没有 GitHub 的 SSH 访问权限。因此,他们将使用 HTTPS URL 克隆您的存储库……然后在 Git 尝试使用 SSH URL 克隆子模块时出现问题。

如果您使用 Git 存储库进行系统配置,这也可能是一个问题。

理想情况下,我希望 Git 在可能的情况下从 SSH URL 中提取数据,否则从 HTTPS URL 中提取数据。这应该让每个人都能开箱即用。有什么方法可以让它做到这一点吗?

最佳答案

你可以做的是:

这样,对于您的本地存储库,您始终使用 ssh,但对于任何克隆您的存储库的人,只有 https 引用。

关于git - 我可以将 git 子模块与某种后备 URL 链接起来吗?如果 SSH 克隆失败,git 应该能够使用 https 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433599/

相关文章:

git - 基于服务器创建一个新的 GIT 分支,无需本地更改

git - 为什么 gitlab-runner 不能克隆我的项目? (主机名不正确,连接失败)

java - Apache CommonsVFS 连接到 https 服务器

git - 索引有reflog吗?

混帐添加。 -> 仍然是 "nothing to commit"和新文件

ruby-on-rails - 如何将 ssh key 添加到 docker 容器?

bash - sudo和chpasswd在一行上

javascript - Node.JS执行git命令错误: Permission denied (publickey)

asp.net - 在 wcf 服务中使用 aspNetCompatibilityEnabled ="false"获取 HttpContext.Current

带有 CA 证书问题的 HTTPS SSL 自签名证书