質問: 複製されたgithubリポジトリはパスワードを要求しますが、最初に作成されたものはパスワードを要求しません ディスクから大量のリポジトリを失ったばかりなので、githubからクローンを作成しました。これらは、githubに何かをプッシュするたびにユーザー名とパスワードを要求するようになりました。削除されていないものはそれをしません。 ユーザー名/パスワードプロンプトを取り除くために私が読んだ唯一の解決策は、sshキーを生成することです。重要なのは、私はすでにキーを持っているということです。そうしないと、クローンを作成しなかったため、これらのリポジトリにプロンプトが表示されないとプッシュできませんでした。2つのリポジトリのgit configを確認しました。1つはパスワードなしでプッシュでき、もう1つはクローンを作成しました。唯一の違いは、branch.master.remoteとbranch.master.mergeの設定でしたが、これらの設定を解除して、git configを同じにしました。しかし、プロンプトはまだそこにあります。新しいsshキーの生成が機能するかどうかさえわかりません。私のオプションは何ですか?
回答: 私の推測:古いリポジトリでは、公開鍵認証を使用するsshリモート(git@github.com:またはssh://git@github.com/プレフィックス)を使用していました。 (実際、github sshサーバー決してはパスワードを要求しません。)新しいリポジトリはhttpリモート(https://username@github.com/)を使用します。これは、パスワードベースのhttp basic認証のみをサポートし、sshキーを使用しません。sshを再度使用するようにリモートurlを変更します。これを行うには、git remote set-urlを使用するか.git/configを編集します。交換 https://username@ github.com /username/repo.git ただで git@github.com:username/repo.git ~/.gitconfigに、リモートurlをhttpまたはgitからsshに変換するように指示するエントリを含めることもできます。このように、リポジトリがhttpまたはgitリモート用に構成されている場合、gitはプッシュ時にその設定を無視し、代わりにsshを使用します。[url "git@github.com:"] pushinsteadof = git://github.com/ pushinsteadof = https://github.com/ (insteadof =設定も可能で、プルおよびプッシュの両方をオーバーライドします。)