Если я правильно понимаю, вы используете базовую аутентификацию HTTP через HTTPS, чтобы разрешить доступ к хранилищу только конкретным разработчикам.В этом случае вы можете зафиксировать .gitmodules
, который выглядит следующим образом:
[submodule foo]
path = sub/foo
url = https://example.com/git/foo.git
... т.е. без имени пользователя, а затем попросить каждого разработчика указать свое имя пользователя и пароль в своем файле ~/.netrc
,(Если вы используете Windows, то здесь есть несколько полезных советов .) Простой файл .netrc
может выглядеть следующим образом:
machine example.com
login myusername
password areamandyingtotellsomeonehiscoolpassword
Обновление: альтернатива, которая не предполагает использование .netrc
, будет следующей:
Опять же, удалите имя пользователя из URL в .gitmodules
, подтвердите и нажмите это изменение.Когда кто-то клонирует репозиторий, он сначала запускается:
git submodule init
..., который устанавливает параметр конфигурации submodule.sub/foo.url
на URL в .gitmodules
.Однако шаг init
не будет клонировать субмодуль на место, пока вы не выполните git submodule update
, поэтому вы можете сделать:
git config submodule.sub/foo.url https://myuser:mypass@example.com/git/foo.git
... и затем:
git submodule update
Для клонирования подмодулей с правильным именем пользователя.Обратите внимание, что тогда ваше имя пользователя и пароль для HTTP-аутентификации будут сохранены в вашем git config.