我可以将git子模块与某种回退网址链接吗?如果SSH克隆失败,git应该能够使用https进行克隆

Tom*_*don 5 git ssh https clone github

(这是我在使用github时出现的问题,所以如果任何解决方案都是特定于github的话,我不介意太多.但问题本身并不是特定于github的,并且任何解决方案都不一定是无论是.)

您始终可以使用https克隆公共github存储库.

git clone https://github.com/my-user-name/SDL-mirror/
Run Code Online (Sandbox Code Playgroud)

如果你有一个github知道的SSH密钥,你也可以使用SSH克隆它.

git clone git@github.com:my-user-name/SDL-mirror.git
Run Code Online (Sandbox Code Playgroud)

(我认为使用bitbucket时类似的选项也适用.)

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

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

但是人们试图克隆你的回购呢?他们可能没有对github的SSH访问权限.因此,他们将使用https URL克隆您的存储库...然后当git尝试使用SSH URL克隆子模块时,它会松开.

如果您使用git repo进行系统配置,这也可能是一个问题.

理想情况下,如果可能的话,我希望git从SSH URL中提取,如果不是,我希望使用https URL.这应该让每个人都可以开箱即用.有什么方法可以让它做到这一点?

Von*_*onC 6

你能做的是:

这样,对于您的本地仓库,您总是使用ssh,但对于任何克隆您的仓库的人来说,只有https引用.