リポジトリが存在する前からリポジトリ専用のプロキシというのは奇妙に聞こえます。clone に失敗してから設定を編集してやり直す必要はありません。

clone は最初の fetch の前にローカル設定を書き込めます:

git clone --config http.proxy=http://proxy.example.net:8080 \
  https://git.example.net/team/project.git project

これらのエンドポイントは例です。許可された公開プロキシ経路にある公開 HTTPS リポジトリには、HTTP プロキシ一覧から HTTP エンドポイントを選びます。Git はこのオプションが、新しいリポジトリの初期化後かつリモート履歴の取得前に有効になると文書化しています。したがってこのプロキシ設定は最初のダウンロードをカバーし、その後も新しいリポジトリに残せます。

似た 2 つのコマンドは異なる足跡を残す

設定を clone したリポジトリに保存せずに 1 回の呼び出しに経路を渡すには、サブコマンドの前に -c を置きます:

git -c http.proxy=http://proxy.example.net:8080 \
  clone https://git.example.net/team/project.git project

git clone --config ... と git -c ... clone は交換可能な設定スコープではありません。そのリポジトリでの将来の操作がプロキシを保持すべきかを選んでください。

その選択が重要なときは、新しいリポジトリのローカル設定を確認します。他のユーザー、システム、URL 固有の設定も引き続き実効ポリシーに関与できます。

経路を保存するときは、これらの例からパスワードを排除してください。clone の設定オプションに渡された資格情報を含む値は、恒久的なリポジトリ設定になり得ます。

これは HTTP トランスポートの設定で、HTTPS リモートを含みます。SSH リモートには依然として独自の SSH プロキシ経路が必要です。SSH をポート 443 に移しても、このオプションがそれを設定するわけではありません。

関連記事