Git for Windowsの初期設定の意味
そろそろGitでclone以外を使ってみたいのですが、基礎すらよく理解していないため怖くて使えません。 よくわからない場合は、よくわからないことを調べてみたり、とりあえず使ってみることで理解が深まると思っています。
そんなわけで「よくわからないことを調べてみる」ということで、今回はGit for Windowsをインストールする際に参考にした下記ページでの「グローバルの設定」の意味を調べてみることにします。
私家版 Git For Windowsのインストール手順 | OPC Diary
$ git config --global user.name "Mei Sei" $ git config --global user.email "hoge@email.com" $ git config --global color.ui auto $ git config --global core.quotepath false $ git config --global --unset i18n.logoutputencoding $ git config --global --unset i18n.commitencoding $ git config --global --unset svn.pathnameencoding
コマンドの意味
どれもgit config
なので、git help config
で表示されたヘルプの内容をもとにまとめてみます。
git config --global
まずは全コマンドでの共通部分。 これは、Git用の各種設定を、取得したり設定するためのコマンドのようです。
Git用の各種設定は大きく分けて、A「システム上の全ユーザ用の設定」、B「現在のユーザ用の設定」、C「現在使っているリポジトリ用の設定」の3種類があり、指定しない場合はA、B、C順で設定を参照し、一番最後の設定が有効になるようです(つまり、設定の優先度準的にはC、B、A)。
で、「--global」はそのうちのBを指定した版。つまり、現在のユーザ用のGitの設定を指定することになります。
Aを指定するのは「--system」で、Cを指定するのは「--local」。設定を取得する際は省略し、設定を書き込む際は明示的に使用するのがよさそうですね。
git config --global user.name "Mei Sei"
各種コミット時に記録されるフルネームの設定です。誰のコミットかを記録するために必要な情報ですね。
環境変数のGIT_AUTHOR_NAMEやGIT_COMMITTER_NAMEが設定されている場合はそれらで上書きされるようです。
git config --global user.email "hoge@email.com"
各種コミット時に記録されるeメールのアドレスです。eメールアドレスなら世界中で一意なはずってことで、識別するために使われるっぽいです。
環境変数のGIT_AUTHOR_EMAILやGIT_COMMITTER_EMAIL、EMAILが設定されている場合はそちらで上書きされるようです。
git config --global color.ui auto
gitコマンドでコンソールに出力される内容の色付けをする設定のようです。個別に細かい設定もできるようですが、autoにしておけば基本は万事OKなもよう。 最近のバージョンだとautoがデフォルト設定なようなのでこの設定はなくてもよさそうです。
git config --global core.quotepath false
この設定をすることで、ファイルなどのパス表示系のGitコマンドで日本語ファイル名を表示できるようになるようです。
デフォルトだとこの設定がtrueで、その場合、Asciiコードでの印字不可能文字などのパスが"\344\270\200\350\246\247"といった具合にダブルクォテーションで括られたうえでエスケープ表示されるようです。日本語環境なら表示できるので、この設定は常にfalseで問題なさそうですね。
git config --global --unset i18n.logoutputencoding
i18n.logoutputencodingの設定を消しています。i18n.logoutputencodingはログ表示系コマンドでのエンコーディングを指定する設定で、Git for Windowsがユニコードに対応する前にこの設定をした人はもう設定不要だよということで設定を消すようにしているようですね。
git config --global --unset i18n.commitencoding
i18n.commitencodingの設定を消しています。i18n.commitencodingはコミット時のコメントのエンコーディングを指定する設定で、Git for Windowsがユニコードに対応する前にこの設定をした人はもう設定不要だよということで設定を消すようにしているようですね。
git config --global --unset svn.pathnameencoding
svn.pathnameencodingの設定を消しています。ヘルプではsvn.pathnameencodingに関する情報は見つかりませんでしたが、ググった感じどうやらgit-svnというgitとsvnを連携させるコマンドでsvnのパス情報をgit側に格納する際のエンコーディングを指定する設定のようで、これもGit for Windowsがユニコードに対応したことで設定不要となったようです。
自分用の設定
調べてみた結果、自分の環境ではいろいろ設定が不要だということがわかりました。そんなわけで、今後は次の設定のみでいこうと思います。
$ git config --global user.name "naktatty" $ git config --global user.email "naktatty@gmail.com" $ git config --global core.quotepath false
minttyとlsの色設定をSolarizedに
デフォルトの色設定だと黒バックに白字・青字・緑字と、自己主張が強いのでもう少しマイルドな色設定、 Solarized にしてみました。
minttyの色設定を変更
Solarizedのmintty用の色設定を公開してくれている方がいるので、ありがたく使わせてもらいます。
まずは設定ファイルを取得しておきます。
~$ cd ~/etc
~/etc$ git clone https://github.com/mavnn/mintty-colors-solarized
その後、「.bashrc」などに次の設定を追加します。
# minttyのカラー設定をSolarizedに source ~/etc/mintty-colors-solarized/sol.dark
このままだとls
でのファイルやフォルダの色分けがわからなくなってしまうため、続いてls
の色設定も行います。
lsの色設定を変更
Solarizedのls用の色設定を公開してくれている方もいるので、これまたありがたく使わせてもらいます。
まずは設定ファイルを取得しておきます。
cd ~/etc
git clone https://github.com/seebi/dircolors-solarized
その後、「.bashrc」などに次の設定を追加します。
# lsの色設定をSolarizedに eval `dircolors ~/etc/dircolors-solarized/dircolors.ansi-dark`
参考リンク
- Solarized - Ethan Schoonover
- GitHub - mavnn/mintty-colors-solarized
- GitHub - seebi/dircolors-solarized: This is a repository of themes for GNU ls (configured via GNU dircolors) that support Ethan Schoonover’s Solarized color scheme.
- Mac Terminal のカラー設定をSolarized にする - Qiita
- LS_COLORSを設定しよう - Qiita
- Mac、CygwinターミナルへのSolarized導入記 - Qiita
Git Bashでのpingの文字化けを解決
Git for WindowsのGit Bashを使っているのですが、ping
を使用すると文字化けしてしまいます。
これを解決するには、「.bashrc」あたりに次のように書けばOKです。
function wincmd() { CMD=$1 shift $CMD $* 2>&1 | iconv -f cp932 -t utf-8 } alias ping='wincmd ping'
この方法以外にも、minttyの設定を変更してCharacter SetにSJISを設定することでも文字化けしなくなりますが、これだと今度はコンソール上でUTF-8が扱えなくなってしまいます。
…よく考えたら自分の用途的にはそれであまり困らないのですが、「pingの出力をShift_JISからUTF-8に変換する」というのが一般的なようなので、真似してみました。
参考リンク
Windowsで画面の上端での最大化無効化
Windows 8.1を使っているのですが、ウインドウの位置を調整しているときに勝手に最大化されることがあり困ります。
この機能、次のように設定することで無効化できます。
「コントロールパネル」
→「コンピュータの簡単操作」
→「マウスの動作の変更」
→「ウインドウの管理を簡単にします」
にある
「ウインドウが画面の端に移動されたとき自動的に整列されないようにします」
にチェックを入れる
ただしウインドウをシェイクして他のウインドウが最小化される機能も同時に無効になるので注意。
※ 追記:Windowsキー + 矢印キー でウインドウを移動させる機能も無効になっていました。この機能はよく使用するため、「上端での最大化無効化」を諦めることにしました…
参考リンク
Windowsのhostsファイル
%windir%\system32\drivers\etc\hosts
特定のWindowsマシンから「192.168.0.7」を「edison」という名前として扱うには、上記ファイルを管理者権限で開いて次のように追記すればよい。
192.168.0.7 edison