私がやりたいのは、2 つの Git エイリアスを設定することです。
~/.gitconfig
[alias]
        noproxy = config --global --remove-section http
        proxy = config --global http.proxy http://127.0.0.1:9666
config --global --unset http.proxyプロキシをリセットするとセクション見出しが残るため、プロキシをリセットしなかったことに注意してください。プロキシ[http]を繰り返し有効化および無効化すると、一連の空のセクション見出し.gitconfigで汚染されます。[http]大したことではありませんが、ただ迷惑です。
企業のファイアウォールの内側など、場合によっては、~/.ssh/config代わりに構成する必要があります。セットアップは少し複雑になります。
~/.gitconfig
[alias]
        noproxy = !sh -c 'cp ~/.ssh/config.noproxy ~/.ssh/config'
        proxy = !sh -c 'cp ~/.ssh/config.proxy ~/.ssh/config'
~/.ssh/config.noproxy
Host github.com-username
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa
~/.ssh/config.proxy
Host *
  ProxyCommand connect -H 127.0.0.1:9666 %h %p
Host github.com-username
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa
エイリアスを次のように変更することで、2 つの方法を組み合わせることもできます。
[alias]
        noproxy = !sh -c 'git config --global --remove-section http 2> /dev/null && cp ~/.ssh/config.noproxy ~/.ssh/config'
        proxy = !sh -c 'git config --global http.proxy http://127.0.0.1:9666 && cp ~/.ssh/config.proxy ~/.ssh/config'
これで、入力するだけgit noproxyでプロキシを無効にしgit proxyて有効にすることができます。さらにエイリアスを作成することで、複数のプロキシ間で切り替えることもできます。