4

サブモジュールを 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

どうしたの?

4

2 に答える 2

3

.gitmodule ファイルにユーザー名を入れないでください。これにより、すべてのユーザーがあなたのユーザー名を使用してサブモジュールを取得しようとします。代わりに、2 番目の例の形式に従い、.ssh/configファイルでユーザー名を指定します。

Host gerrit.somewhere.com
    User my_username

(これは、ssh を使用していることを前提としています。そのようです。https も使用している場合は、.netrc ファイルを調べてください)。

于 2013-06-10T21:45:59.520 に答える
0

同じユーザーとしてログインしていないと思われます。試す

url = my_username@gerrit.somewhere.com:some-thing.git

はあなたのURLmy_usernameと同じです。ssh:

于 2013-06-10T20:59:10.330 に答える