Git:在子模块中从其他Windows帐户获取失败(但不在顶级仓库中)

时间:2018-11-26 09:56:01

标签: git ssh git-submodules git-fetch

我知道这个表述听起来很奇怪,但这实际上是根本原因。假设我有两个Windows帐户,用户名Bob和John。在这两者上,我在 /。ssh文件夹中设置了相同的私有/公共SSH密钥。该密钥在远程服务器上注册,因此是已知的。作为记录,我用于登录到远程Web界面的用户名是Bob。在项目回购的本地副本的.git / config文件中,我具有如下设置的remote和所有子模块:

[remote "origin"]
    url = ssh://Bob@remote.server.com:<port>/project_XY
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "moduleA"]
    url = ssh://Bob@remote.server.com:<port>/module_A

我可以从任何一个帐户的顶级回购中获取任何信息。

现在从John帐户中,当我从子模块A中(从同一文件夹,该文件夹是来自同一远程服务器的同一存储库的同一克隆)获取时,我得到:

John@Computer MINGW64 /c/project/sources/module_A (master)
$ git fetch
John@remote.server.com's password:

git submodule update将在遇到的第一个子模块处被阻塞并停留在那里(等待密码输入,但抑制了我从子模块文件夹中直接获取时在上面显示的控制台输出)。

由于John并不是远程服务器上的注册用户,所以我陷入了困境。如何永久更改此行为,以使其透明地使用SSH密钥(因为该密钥可用于Bob的帐户)或什至从John的帐户使用Bob的用户名?

谢谢。

0 个答案:

没有答案