Windows で Git の環境設定 (msysgit, TortoiseGit)

PC を整理していたら以前社内勉強会で使ったメモが出てきたので、折角なので少し整理してブログに載っけることにしました。

msysgit

まず最初に msysgit をインストールします。下記サイトからダウンロード出来ます。

幾つかファイルがありますが「Git-X.X.X-previewYYYYMMDD.exe」という形式のファイル名の最新の版をダウンロードしてください。例えば「Git-1.7.11-preview20120710.exe」などです。

msysGit-fullinstall-X.X.X-previewYYYYMMDD.exe」と間違え易いですが、これは msysgit 自体をビルドしたい人向けのもので、サイズもかなり大きいので不要です。

次にインストールウィザードですが、好みもありますが概ね次のように選択してください。

Select Components

  • Additional icon

    クイックランチやデスクトップのショートカットアイコンです。邪魔なので全部 Off にします。

  • Windows Explorer Integration

    エクスプローラーのコンテキストメニューの設定です。 「Advanced context menu」を選択するとシェル拡張を用いたメニューになるらしいです。 が、TortoiseGit を使うので「Simple context menu」を選択します。

  • Associate .git* ~ ・Associate .sh ~

    恐らく関連付けの設定です。不要なので全て Off にします。

  • Use a True Type font ~

    On にすると文字化けするらしいので Off にします。

Select Start Menu Folder

スタートメニューにショートカットを設けるかどうかです。そのままで構いません。不要なら後で削除してください。

Adjusting your PATH environment

インストール時に設定される PATH 環境変数の設定です。

  • Use Git Bash only

    PATH を設定しません。Git Bash からのみ git コマンドが使用可能です。

  • Run Git from the Windows Command Prompt

    git/gitk コマンドだけ PATH に設定されます。 コマンドプロンプトからは git/gitk コマンドのみ使用可能です。

  • Run Git and includeed Unix tools from the Windows Command Prompt

    git/gitk と msys のコマンドも PATH に設定されます。 コマンドプロンプトから msys のコマンドが使用可能になりますが、既存のコマンドと重複するものもあります(find とか)。

環境変数は自分で調整したいので「Use Git Bash only」を選択します。

Choosing the SSH executable

git か使用する SSH クライアントを選択します。

  • Use OpenSSH

    msys の ssh コマンドを使用します。

  • Use (Tortoise)Plink

    plink を使用します。

OpenSSH だと色々問題があるらしいので「Use (Tortoise)Plink」を選択します。また、インストール後に環境変数 GIT_SSH を弄れば plink のパスは変更することが出来ます。

改行文字の変換設定 (Configuraing the line ending conversions)

改行文字を自動変換するかどうかの設定です。百害あって一利なしなので「Checkout as-is, commit as-is」を選択します。

Git のインストール後の設定

msysgit のインストールが完了したら、細かい環境設定を行なっていきます。 下記では msysgit を D:\appx\git にインストールしたものとして説明します。

環境変数 HOME の設定

環境変数 HOME に「C:\Users\名前」を設定します (Bash が .bashrc とかを探す場所になります)。 お好みで他のディレクトリにしても構いません。

環境変数 PATH の設定

下記の 2 つのパスを環境変数 PATH に設定します。

D:\appx\git\cmd   git と gitk コマンド
D:\appx\git\bin   その他の msys のコマンド

コマンドプロンプトから git や msys のコマンドが使えるようになります。

Bash の初期化ファイル .bashrc を作成

環境変数 HOME に設定したディレクトリに .bashrc を次の内容で作成します。

export PS1='[\w]\$ '
export TERM=msys

alias vi='vim'
alias ls='ls -F --color=auto --show-control-chars'
alias ll='ls -l'

Bash (というか Readline?) の日本語入力設定

上手く行かなかったので Bash からの日本語入力は諦めてください・・・TortoiseGit で日本語ファイル名を扱う分には問題ありません。

Git の設定

git config コマンドで git の環境設定を行います。

Git から起動されるエディタに、お好みのエディタを指定します。サクラエディタを使う場合は次のように指定します。

git config --global core.editor "sakura.exe -CODE=4 -GROUP=9"

日本語の文字化け対策。

git config --global core.quotepath false

改行コードの自動変換の無効化。

git config --global core.autocrlf false

コミットに記録されるメールアドレスと名前を指定。

git config --global user.email hoge.piyo@example.jp
git config --global user.name "hoge piyo"

PUSH を upstream に限定します(デフォルトでは同名のブランチを全てプッシュしてしまう)。

これがなんなのか今は判らなくてもいいので、この通りに設定しておいてください。

git config --global push.default upstream

コマンドのエイリアスを設定します。git checkoutgit co と短く書けるようになります。

好みで適当に設定してください。大概の操作は TortoiseGit で行うので、そんなに拘る必要はありません。

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status

プロキシ環境下では、次のようにプロキシの設定も行なっておいてください。

git config --global http.proxy http://example.jp:8080

関連付け

インストーラが設定した関連付けは HKEY_CLASSES_ROOT\Directory\shell[git_gui][git_shell] にあります。弄りたい人は適当に弄ってください。私は Extended キーを追加して普通には表示されないようにしています。

HKEY_CLASSES_ROOT とかの意味がわからない人はスルーしてください。

TortoiseGit

Git (msysgit) のインストールと設定は一通り終わったので、次に GUI フロントエンドの TortoiseGit をインストールします。

使用している OS のビット数にあったものをダウンロードしてください。また、日本語化のために Language Packs の Japanese もダウンロードしてください。

インストールウィザードの選択ですが、Choose SSH Client で TortoisePlink を使うように選択しておけば、後はデフォルトのままで問題ありません。

本体のインストールが完了したら Language Pack もインストールしておいてください。

TortoiseGit インストール後の設定

TortoiseGit のインストールが完了したので、細かい設定をしていきます。

好みによるところが大きいので、下記を参考に各自設定してください。

一般 - コンテキストメニュー

コンテキストメニューの1段目に表示される項目です。よく使う項目を選択しておきます。

  • フェッチ
  • コミット
  • SVNフェッチ
  • 差分
  • ログを表示

ここで選択しなかった項目も、コンテキストメニューの TortoiseGit のサブメニュー内に表示されます。

「バージョン管理外のパスではメニューを表示しない」を On にすれば、関係無いディレクトリで TortoiseGit のメニューが表示されなくなります。その場合でも Shift を押しながら右クリックすると TortoiseGit のメニューは表示されます。

一般 - 拡張メニュー

ここで指定した項目は TortoiseGit のサブメニュー内にも表示されなくなります。ただし Shift を押しながら右クリックすると表示されます。

利用頻度の非常に低い項目を選択しておきます。

  • SVN Ignore をインポート
  • Reflog を表示
  • リファレンスをブラウズ
  • Bisect start
  • クリーンアップ
  • エクスポート
  • サブモジュールの追加
  • パッチを作成
  • パッチを適用
  • ヘルプ
  • TortoiseGit について

代替エディター

お好みのエディタのパスを指定してください。特に無ければデフォルトのままで問題ありません。

オーバーレイアイコン

「状態のキャッシュ」に「拡張したシェル」を選択します。

特に理由はありませんが、TortoiseSVN の頃はこれは一番安定していた気がするので。

差分ビューアー

「異なるリビジョンのファイルの比較に使用するプログラムの設定」で「外部」を選択して WinMergeU のパスを指定します。


これで一通りの設定は完了です。最後に TortoiseSVN をアンインストールしてコンテキスメニューをスッキリさせたい人向けにコマンドラインの Subversion を紹介しておきます(GUI が無ければ SVN を弄れない人は TortoiseSVN を残しておいたほうが無難です)。

win32svn

TortoiseSVN をアンインストールしてしまう場合は、代替としてコマンドラインの Subversion をインストールしておいた方がいいでしょう。

インストーラーから入れてもいいのですが、アーカイブをダウンロード&解凍して環境変数 PATH を設定するだけの方が簡単かもしれません。