我正在克隆一个包含几个子模块的存储库。为了节省时间,我正在做一个浅克隆,将私钥作为环境变量传递。例子:
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 version 2.19.2.windows.1