ちょっと気になったツールをインストールして試したいだけなのに、しょっちゅうプロキシ環境で阻止される場面があって、とんでもなくうっとおしい。
頑張って試行錯誤してクリアしたらそのままほっぽらかしてしまって、っていうのが何度も重なってどこがどうなってるかわからなくなってるので、ひとまずGit Shell利用に関連したconfig周りを整理してみました。
前提
- プロキシ経由でインターネット接続してる
- Windowsマシン使い
GitHubがらみのプロキシ
リポジトリに対するプロキシ設定
下記のコマンドで、カレント・ディレクトリのリポジトリに対してプロキシを設定できます。
$git config --local http.proxy http://proxy.example.com:8080
実行結果は[リポジトリのディレクトリ]/.git/configファイルに下記のように書き込まれます。
[http]
proxy = http://proxy.example.com:8080
なので、上記のgit configコマンド実行でなく、configファイルへ直接書き込んでもプロキシの設定ができます。
Git全体でのプロキシ設定
複数のリポジトリでやりとりする場合、個別に上記の設定しても良いですが、まとめて利用する設定もできます。
$git config --global http.proxy http://proxy.example.com:8080
実行すると~/.gitconfigファイルに、
[http]
proxy = http://proxy.example.com:8080
と書き込まれます。
なので.gitconfigファイルへ直接(ry
Windows PowerShell(PS) のプロキシ
Git ShellがPSベースのクライアントなので、いっそのことPowerShell全体でプロキシ設定できないものか試してみました。
$Set-Item -path Env:http_proxy http://proxy.example.com:8080
この設定だけやってても、git のconfigに設定されてないと、git cloneとかリモート・リポジトリとのやりとりできなかった。
逆にPSの設定してなくても、git config
の設定だけでgitコマンドでのプロキシ越えは可能。
PSでの設定がだめでも、そもそもWindowsのネットワーク設定だったらどうだ、というので下記試してみた。
$netsh winhttp set proxy proxy-server="proxy.example.com:8080"
これを設定しててもgitのconfigに設定されていないと(ry
PS利用してる時は、一括してプロキシの設定使えたら楽なのに。
その他
.sshのプロキシ設定
~\.ssh\configファイルで、プロキシ利用設定ができる。
ProxyCommand connect.exe -H proxy.example.com:8080 %h %p
GitHubはこの設定してなくても使える。
Vagrantでローカルに立てたVMへのssh接続が、ここでプロキシ設定していると失敗するので、コメントアウトしといた。
なんでこんなん設定したんやっけ。。。
ぼんやり思ったこと
プロキシの設定とか毎回いじるわけではないから覚えにくい。にも関わらず何か試そうとした時に、必ずといっていいほどコケて、その都度プロキシ設定いじるのたまらなく疲労たまる。
クリアしたとしても、個別にプロキシのオンオフ切り替えたりしんとあかんとかなるとめんどいし。
外部接続するツールのプロキシ設定を、まとめて管理できるツールないんかな。
ツールごとにプロキシ設定の仕方が違ってたりして、汎用的にするとなると難しいんやろうけど。