RT。パスワードなしでローカルで Git プッシュを完了する方法はすでに知っていますが、なぜ http メソッドでプッシュする前に毎回パスワード認証が必要になるのか不思議です。ネットワーク プロトコルの経験がなく、オンラインで確認したこともありません。関連する説明があるので、ここに聞きに来ました~
我想大声告诉你2017-05-02 09:49:34
これは http プロトコルの特定の特性に関連していると思います。実際、github は http プロトコルに基づく Smart http プロトコルを使用します。ただし、便宜上、後で http プロトコルを直接使用して呼び出すことにします。
http プロトコルを使用すると、ローカル構成を行わずにリモート ウェアハウスをプッシュ、クローン、プルすることができます。つまり、このプロトコルはどこでも使用できます。つまり、ローカルに依存しません。これは、このプロトコルを ssh プロトコルと区別する主要な機能です。 Cookie などの特別なメソッドが使用されない限り、http プロトコルはリクエストの送信者を記憶したり認識したりしないためです。したがって、承認が必要なサーバーでは、データを取得またはプッシュする前に、検証のためにユーザー名とパスワードを入力する必要があります。これにより、ユーザーが誰であるか、またデータを取得またはプッシュできるかどうかをサーバーが認識できるようになります。
http プロトコルの特性は、ssh プロトコルとはまったく逆です。ssh プロトコルは、データをプッシュまたは取得する権限があるかどうかを識別するために ssh キーに依存しますが、その場合、ssh キーはローカルに保存されます。ローカルに ssh キーがない場合、データの取得またはプッシュの操作を完了することはできません。両者はまさに相補的であり、対極的な関係を形成しています。
これで質問の答えがわかるはずです!
あなたの役に立つかもしれないので、以下でもう少し詳しく述べたいと思います。ここで 2 つの利点と欠点をまとめてみましょう:
httpプロトコル
利点: URL と対応する権限がある限り、対応する操作を実行できます
欠点: パスワード キャッシュ メカニズムが使用されていない限り、各操作で頻繁に検証が必要になります
sshプロトコル
利点: データをプッシュまたは取得するときに毎回認証のためにパスワードを入力する必要はありません
欠点: 使用前に ssh キーを設定して生成する必要がある
さらに、github ウェブサイトの場合、git Push
、git pull
、および git fetch
は検証が必要であることがわかります。 git clone を実行するときに検証は必要ありません
。このことから、github サーバーは認証が必要な種類のサーバーであると推測できます (あくまで個人的な推測ですが、参考までに)。おそらく git clone
は検証を必要としない特別に設定された操作です。 。 1つ。 git push
、git pull
、git fetch
的时候需要验证,而git clone
的时候不需要验证。由此,我可以这样推测(只是我的个人推测,仅供参考),github的服务器就属于那种需要授权的服务器,但是可能git clone
是特别设置不需要验证的操作之一。
但是我在Github的帮助手册中发现了这句话:
When you
git clone
,git fetch
,git pull
, orgit push
to a remote repository using HTTPS URLs on the command line, you'll be asked for your GitHub username and password.
当你在命令行中使用HTTPS的URL来对远程仓库进行git clone
,git fetch
,git pull
, 或者git push
操作时,你会被要求输入Github的用户名和密码。
但是实际上git clone
#🎜🎜##🎜🎜#しかし、実際には、git clone
、git fetch
、git pull
を行うときコマンドラインで HTTPS URL を使用してリモート リポジトリにコード>、またはgit Push
を実行すると、GitHub のユーザー名とパスワードの入力を求められます。
コマンドラインで HTTPS URL を使用する場合は、git clone
、git fetch
、git pull
、またはgit Push
操作では、Github のユーザー名とパスワードの入力を求められます。 #🎜🎜#
git clone
はユーザー名とパスワードの入力を必要としません。ヘルプ ドキュメントが間違っているからでしょうか? ここで、他の人が私の回答を続けられることを願っています。 !または、新しく開いた質問で回答することもできます。ここをクリックして入力してください。 #🎜🎜#