¿Puedo vincular los submodules de git con algún tipo de URL alternativa? Si el clon SSH falla, git debería poder clonar usando https

(Esto es algo que surgió principalmente cuando uso github, así que no me importa demasiado si alguna solución es específica de github. Pero el problema no es específico de github per se, y cualquier solución no necesita ser necesariamente ya sea.)

Siempre puede clonar un informe público de Github usando https.

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

Si tiene una key SSH que github conoce, también puede clonarla usando SSH.

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

(Creo que se aplican opciones similares cuando se usa bitbucket).

Usted tiene estas dos opciones cuando agrega un submodule, también.

Al agregar un submodule, a menudo agregará la versión SSH, por lo que puede realizar la confirmación directamente desde el submodule después de probar los cambios in situ.

Pero, ¿qué hay de las personas que intentan clonar su repository? Es posible que no tengan acceso SSH a github. Entonces clonarán su repository usando la URL https … y luego se destrabarán cuando git intente clonar los submodules usando las URL SSH.

Esto también puede ser un problema si usa un git repo para el aprovisionamiento del sistema.

Idealmente, me gustaría que Git extraiga de la URL SSH si es posible, y la URL https si no. Eso debería hacer que las cosas funcionen de la caja para todos. ¿Hay alguna manera de que pueda lograrlo?

Lo que puedes hacer es:

  • registre sus submodules con una URL https ( o cambie su url ssh actual por una https )
  • instruir localmente a Git para que use ssh en su lugar :

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

De esta forma, para su repository local, siempre está utilizando ssh, pero para cualquier persona que clone su repository, solo hay references https.