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