某些git路径的权限被拒绝

我需要克隆一个从gerrit服务器到我的本地项目的子模块.这是一个有效的.gitmodule文件:

[submodule "blah/blah/thing"]
  path = blah/blah/thing
  url = ssh://my_username@gerrit.somewhere.com/some-thing.git

这是我想要工作的.gitmodule文件,因为它适用于其他团队成员:

[submodule "blah/blah/thing"]
  path = blah/blah/thing
  url = gerrit.somewhere.com:some-thing.git

当我尝试使用后一种形式时,我收到此错误:

$git submodule update --init --recursive
Submodule 'blah/blah/thing' (gerrit.somewhere.com:some-thing.git) registered for path 'blah/blah/thing'

Cloning into 'blah/blah/thing'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'gerrit.somewhere.com:some-thing.git' into submodule path 'blah/blah/thing' failed

怎么了?

最佳答案
不要将您的用户名放在.gitmodule文件中.这将导致所有用户尝试使用您的用户名获取子模块.而是按照第二个示例中的格式,在.ssh / config文件中指定您的用户名:

Host gerrit.somewhere.com
    User my_username

(这假设您正在使用ssh,这似乎就是这种情况.如果您还使用https,请查看.netrc文件).

转载注明原文:某些git路径的权限被拒绝 - 代码日志