Ответ 1
Если возможно, лучше убедиться, что файл .gitmodules
содержит URL-адрес репозитория, который может быть клонирован кем-либо, как правило, либо с тегом git://
или http://
. Затем пользователи, у которых есть доступ к SSH, могут изменить в подмодуль после клонирования и изменить URL-адрес в remote.origin.url
, чтобы указать URL-адрес SSH с их именем пользователя, например:
cd my-submodule
git remote set-url origin [email protected]:/pathtorepos
Другой пользователь должен иметь возможность сделать это даже в текущей ситуации. Обновление:. Крис Джонсон указывает ниже, что также разумно использовать URL-адрес SSH в .gitmodules
, если вы опустите имя пользователя, и все пользователи репозитория будут иметь доступ к SSH - им нужно будет добавить их имя пользователя аналогично указанному выше, если оно отличается локально и удаленно.
Обратите внимание, что URL-адреса в .gitmodules
используются только при инициализации подмодуля. Инициализация подмодуля задает значение конфигурации submodule.<SUBMODULE-NAME>.url
в главном проекте на то, что было зафиксировано в .gitmodules
- это значение, которое будет использоваться при первом обновлении подмодуля. Между инициализацией и обновлением подмодуля вы также можете изменить этот URL-адрес, который будет использоваться для этого первого обновления, с помощью команды, например:
git config submodule.my-submodule.url [email protected]:/pathtorepos
Действительно, вам может понадобиться сделать это, если первое обновление не выполнено. После того, как подмодуль был обновлен в первый раз, URL-адрес, который вам нужно изменить, определяется для origin
внутри подмодуля - в этот момент полезно только установить значение конфигурации submodule.my-submodule.url
в главном проекте, если вы вероятно, будет удалять и повторно обновлять подмодуль.