今までMacのGitで経験した環境トラブル集
職場に新メンバーが加わった時とかに、Gitで色々なトラブルが起きました。
今回は、私が遭遇したトラブルをまとめてみました。
随時更新していこうと思います。
リモートリポジトリのパスワード関係
リモートリポジトリのパスワード入力を間違えていた。
基本的なことなのですが、入力を間違ているというパターンが意外とあります。
間違って入力したパスワードを、MacのKeyChainが記憶してしまっていた。
上記の件と関係するのですが、間違って入力したリモートリポジトリのパスワードを、KeyChainがキャッシュしてしまい、パスワード入力ができなくなってしまうというパターンがありました。
これは、KeyChainのキャッシュを削除すれば、パスワード入力ができるようになります。
プロキシ関係
Proxy配下のGitを作業していると、何かとトラブルが起きます。
Bashの環境変数に, http_proxy
, https_proxy
, no_proxy
の設定ができていなかった。
コンソールで export
コマンドを実行して満足して、 .bashrc
にちゃんと追加できていなかったというパターンです。
基本的なことですが、意外とこれをやる人が多いです。
.bashrc
か .bash_profile
に環境変数 http_proxy
, https_proxy
, no_proxy
を設定しましょう。
.bashrc
に設定すれば、自動で .bash_profile
にも読み込まれますので、 .bashrc
に書けば十分です。
https_proxy
のスキームを勘違いして https://
にしていた。
http_proxy
と https_proxy
は基本的には同じ値を入れることになるのですが、それを勘違いして、 https_proxy
の方だけURLの先頭を https://
に変更している人がいました。
プロキシのURLにユーザー名・パスワードを追加するのを忘れていた。
認証プロキシの場合、プロキシに対するユーザー名とパスワードを設定する必要があります。そのため、環境変数の値はこんな風になります。
http://(ユーザー名):(パスワード)@(ホスト):(ポート)
git config --global
に http.proxy
, https.proxy
の設定ができていなかった。
どうやら環境変数だけでは不足で、 git config --global
にも設定が必要のようです。
git config --local
で http.proxy
, https.proxy
の設定を上書きしていた。
git config --local
を使えば、リポジトリ毎にGitの設定ができますが、この設定は git config --global
よりも優先されるため、ここに http.proxy
, https.proxy
を間違った値で設定すると、うまく接続できなくなります。
Gitのバージョンが古くて no_proxy
に対応していなかった。
同一LAN内のリモートリポジトリに接続する場合、プロキシの設定が邪魔をします。
そのため、 no_proxy
で、プロキシ設定から除外したいドメインを指定する必要があります。
Gitのバージョンが古くて、この no_proxy
に対応していなかったということがありました。
no_proxy
の値にスペースが混入していた。
export no_proxy=localhost, 127.0.0.1
のようにスペースが入ってしまっていたパターンがありました。
export no_proxy=localhost,127.0.0.1
のようにスペースをなくす必要があります。
メインシェルをZshに変えた際に、Zshの環境変数に, http_proxy
, https_proxy
, no_proxy
を設定することを忘れていた。
環境変数というのはどうやらシェル毎に持っているものらしく、シェルがBashではないなら、 .bashrc
の設定は継承されないようです。
Zshの場合は .zshrc
に設定します。私は .zshrc
から .bashrc
を呼ぶようにしました。