cygwinのgitでutf-8のファイル名とコミット

WindowsのCygwin環境からgitを使う場合に、コミットメッセージにutf-8を使う場合の説明はいくつか見かけたのですが、ファイル名にutf-8を使う場合の説明が見あたらなかったのでメモ。

以下の手順でgit環境を作って試したところ、WindowsとMacで日本語ファイル名と日本語コミットログがうまく共有できました:

  • Cygwinのgitインストール
  • UTF-8 Cygwinのインストール
  • 設定ファイルの書き換え

Cygwinのgitインストール

これは普通にCygwinのsetup.exeからgitをインストールするだけです(gitはDevelカテゴリ配下にあります)

以下Cygwinを"C:\cygwin"にインストールした前提として話を進めます。

UTF-8 Cygwinのインストール

Cygwinを簡単にutf-8化するという素晴らしいものがあるので、これをインストールします。インストールは簡単でダウンロードしたファイルを展開して得られる"cygwin1.dll"を"C:\cygwin\bin"に上書きコピーするだけです。詳しくはダウンロードページを参照してください。

設定ファイルの書き換え

基本的にUTF-8 Cygwinを導入した時点でgitのutf-8化は完了しているのですが、そのままでは日本語の入力と表示に問題があるので設定ファイルを変更します。

合併のお知らせ|OKIソフトウェアにも書いてあるのですが、"~/.inputrc"を書き換えます。これによって日本語が入力できるようになります。

set convert-meta off
set output-meta on

次に"~/.bashrc"に以下の行を追加します。これによって"git log"したときに、日本語のコミットログが表示されるようになります。

export LANG=ja_JP.UTF-8

あとlsで日本語ファイル名を表示する場合、"--show-control-chars"オプションをつけないと正常に表示されないので、以下のaliasを定義しておくと便利です(これも合併のお知らせ|OKIソフトウェアに書いてあります)

alias ls='ls -F --show-control-chars'

これでファイル名とコミットログはうまくいきましたが、diffとかは全く試してません。