ホストごとに異なるプロキシルールを Git に与える
Git の URL 固有の HTTP 設定により、内部サービスを直接のままにしつつ、別の場所ではプロキシを維持できます。正確な URL の一致結果を確認してください。
1 つの Git 設定で、まったく異なる 2 つの経路を扱えます。承認されたプロキシ経由で到達する外部ホストと、直接到達する内部ホストです。リポジトリを切り替えるたびにグローバル既定値を編集し続ける必要はありません。
Git は URL 固有の HTTP 設定をサポートしています。たとえば:
[http]
proxy = http://proxy.example:8080
[http "https://git.office.example/"]
proxy =
公開プロキシが許可されている外部の公開リポジトリでは、HTTP プロキシ一覧が既定エンドポイントの候補を提供します。空の値は、一致する URL に対する明示的な上書きです。これは、より具体的なそのキーを削除するのとは異なり、削除すると汎用プロキシが再び露出する可能性があります。
Git が使用する URL を一致させる
スキーム、ホスト名、ポート、パス、および任意のユーザー名が、文書化された一致ルールに関与します。URL サブセクションを一般的なシェルのワイルドカード式として扱わないでください。より狭いパスのルールが、より広いホストのルールに勝つことがあります。
一致するプロキシ設定を読み取り専用で確認するには:
git config --get-urlmatch http.proxy https://git.office.example/team/project.git
これは設定の一致を検査するものです。ネットワークテストではなく、経路に到達できることを証明するものでもありません。他の設定スコープや関連する環境設定も考慮してください。
リダイレクトは新しい設定一致ではない
Git のドキュメントによれば、一致する URL は Git コマンドに直接渡された URL です。リダイレクトによって訪問される URL はその一致に関与しません。最初のホストがダウンロードを別の場所へリダイレクトする場合は、この制限に留意してください。
経路は転送方式にも一致する必要があります。SSH リモートは、同じサービスが HTTPS のウェブサイトを提供しているという理由だけでHTTP URL サブセクションの対象になるわけではありません。
意図したルールを少数に絞り、代表的な URL で結果を確認してください。グローバル、リポジトリローカル、URL 固有のプロキシエントリが長く蓄積されると、表現しようとしていたネットワーク上の区別よりもはるかに推論が難しくなります。