LoginSignup
7
8

More than 5 years have passed since last update.

Git Shellでのプロキシ設定について

Last updated at Posted at 2015-09-01

ちょっと気になったツールをインストールして試したいだけなのに、しょっちゅうプロキシ環境で阻止される場面があって、とんでもなくうっとおしい。
頑張って試行錯誤してクリアしたらそのままほっぽらかしてしまって、っていうのが何度も重なってどこがどうなってるかわからなくなってるので、ひとまず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接続が、ここでプロキシ設定していると失敗するので、コメントアウトしといた。
なんでこんなん設定したんやっけ。。。

ぼんやり思ったこと

プロキシの設定とか毎回いじるわけではないから覚えにくい。にも関わらず何か試そうとした時に、必ずといっていいほどコケて、その都度プロキシ設定いじるのたまらなく疲労たまる。
クリアしたとしても、個別にプロキシのオンオフ切り替えたりしんとあかんとかなるとめんどいし。

外部接続するツールのプロキシ設定を、まとめて管理できるツールないんかな。
ツールごとにプロキシ設定の仕方が違ってたりして、汎用的にするとなると難しいんやろうけど。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8