Я клонирую репозиторий с несколькими подмодулями. Чтобы сэкономить время, я делаю мелкий клон, передавая закрытый ключ как переменную окружения. Пример:
GIT_SSH_COMMAND="ssh -i temp_pvt_key.key" git clone -b my_branch --depth=1 git@my-repo.com:my_team/my_repo.git temp_repo
Команда выше работает просто отлично! Но когда я пытаюсь сделать то же самое с подмодулями, добавив --depth=1
, git больше не может найти temp_pvt_key.key
.
Ошибка:
Cloning into 'C:/path/to/submodule/folder'...
Warning: Identity file ../temp_pvt_key.key not accessible: No such file or directory.
git@my-repo.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Я использую относительный путь (../
), когда файл закрытого ключа находится в родительской папке хранилища.
Работает, но клонируется все хранилище подмодулей:
cd temp_repo
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ../temp_pvt_key.key" git submodule update --init
В основном та же команда плюс --depth = 1. Это не работает вообще:
cd temp_repo
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ../temp_pvt_key.key" git submodule update --depth=1 --init
Я пробовал в одной команде тоже, но безуспешно, я закончил с той же ошибкой:
GIT_SSH_COMMAND="ssh -i temp_pvt_key.key" git clone -b my_branch --depth=1 --recursive --shallow-submodules git@my-repo.com:my_team/my_repo.git temp_repo
Можно ли как-нибудь обойти эту проблему?
Git версия: git version 2.19.2.windows.1