作者:集束群 | 来源:互联网 | 2022-12-25 04:51
在gitlab的私有存储库中,当我运行git clone git@git.privateserver.local:group/project-submodule.git
克隆成功完成时.
作为克隆过程的一部分,我被要求提供私钥的密码.
当我运行
submodule update --init "group/project-submodule"
它失败时:
许可被拒绝,请再试一次.许可被拒绝,请再试一次.权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码).致命:无法从远程存储库读取.
在尝试处理子模块时,我没有被要求为我的私钥密码.
(我不得不匿名)
致命:将'git@git.privateserver.local:group/project-submodule.git'克隆到子模块路径'C:/ Users/user/repos/project-module/project-submodule'失败
我检查了.gitmodules
文件,它包含正确的数据(我认为可以通过错误消息确认).
引起我注意的主要因素是我没有被问到我的私钥密码.甚至更奇怪,因为当我git clone
直接使用时,它会按预期运行.
我也已经通过访问进行了诊断ssh
并且它询问了我的密码,就像我执行拉或克隆时发生的那样
使用git for windows"git version 2.16.2.windows.1"
1> 小智..:
Git尝试使用ssh而不是https克隆子模块。如果您尚未配置ssh密钥,则此操作将失败。
您可以设置ssh-agent来缓存ssh密钥的密码,并让git使用它。或更改为https。
对于子模块,Git有点令人困惑。它们是在.gitmodules
目录中的文件中配置的,但是将此处的URL从ssh更改为https并没有帮助。Git使用在中配置的网址.git/config
。
打开此文件,您将找到类似的内容。
[submodule "project-submodule"]
url = git@example.com:project-submodule.git
将此网址更改为等效的https,然后重试。