私のプライベートgitリポジトリ内に存在するサブモジュールを複製できません。リポジトリ全体にアクセスできます
以下のコマンドを使用したことがありますが、うまくいきません。助けてください。既存のリポジトリにサブモジュールを複製する正しい方法は何ですか?
djrecker$ git submodule update --init --recursive
Submodule 'Path' ([email protected]:Path) registered for path 'App'
Cloning into 'Path'...
Permission denied (publickey).
fatal: Could not read from remote repository.
私は同じ問題に直面していました。問題はgithubリポジトリにありました。古いsshキーを使用している可能性があります。
現在のsshキーを更新する必要があります。
Steps involved are:
1. vim ~/.ssh/id_rsa.pub
2. copy the ssh key
3. Go to the github settings
4. Select the option ssh keys
5. Remove the old ssh keys not used anymore.
6. Add a new ssh key.
7. Try running the "git submodule update --recursive"
これは私のために働いた!!
私はこの問題を抱えていました。私の場合、公開鍵(〜/ .ssh/id_rsa)がサーバーに正しく設定されていませんでした。
参照: Git update submodule recursive
# This must be called twice. Once for new and once for existing submodules.
git submodule update --init --recursive
git submodule update --recursive
ssh -vT [email protected]
で診断します。設定したキーがそこにリストされていることを確認してください。権限の問題の詳細については、次のガイドに従ってください: https://help.github.com/articles/error-permission-denied-publickey/.gitmodules
を開き、問題がないことを確認します。 @VonCで推奨されているように、別のフォルダにクローンを作成してみてください。私の場合、通常のコマンドライン(Git CMD)を使用していたときに、同じ問題について不平を言っていました。次に、Git Bashを試しましたが、問題はありませんでした。
興味深いことに、同様の機会にHTTPSリンクを使用するとうまくいきました。
Linux/GitBashのTortoiseGit/Windowsサブシステムでも同じ問題がありました。解決策は、パスワードの代わりにエージェント(キー)による認証を使用することです。
TortoiseGitの場合:
(ページェントgit cloneがなければ、パスワードを要求して意図したとおりに機能しますが、git updateがエラーで失敗します)
WS4Lの場合:
$ eval `ssh-agent -s`
$ chmod 600 /path/to/key
$ ssh-add /path/to/key
を進めます git submodule update
親フォルダーとそのサブフォルダーでgit initを使用して、エラーのあるサブモジュールを作成しました。 .gitフォルダーを削除し、正しい親フォルダーでgit initを最初からやり直しました。
私の場合、問題はコンソールがパスワードを要求しなかったことが原因でした。解決策は、コンソールをCMDERからGitbashに変更することでした。 CMDERを使用した場合、このアクセス拒否の問題の原因となったパスワードウィンドウは表示されません。