2

我正在克隆一个包含几个子模块的存储库。为了节省时间,我正在做一个浅克隆,将私钥作为环境变量传递。例子:

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

4

1 回答 1

0

首先,升级到 Git For Windows 2.25.1(自 2.19 以来可能发生了许多子模块错误/修复/演变)

其次,参数的语法是--depth--depth 1不是--depth=1

于 2020-03-10T05:38:37.073 回答