(这主要是在我使用 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 中提取数据。这应该让每个人都能开箱即用。有什么方法可以让它做到这一点吗?
最佳答案
你可以做的是:
- 使用 https url ( or change its current ssh url to an https one ) 注册您的子模块
本地指导 Git to use ssh instead :
git config --global url.ssh://git@github.com/.insteadOf https://github.com/
这样,对于您的本地存储库,您始终使用 ssh,但对于任何克隆您的存储库的人,只有 https 引用。
关于git - 我可以将 git 子模块与某种后备 URL 链接起来吗?如果 SSH 克隆失败,git 应该能够使用 https 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433599/