私がやりたいのは、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
て有効にすることができます。さらにエイリアスを作成することで、複数のプロキシ間で切り替えることもできます。