UTF-8 対応の msysGit 1.7.10 リリース! いよいよ Windows で git できるよ!!!

先日、msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート! という記事で「UTF-8 対応のコードがコミットされた」ことをお伝えしましたが、ついに、UTF-8 対応の新バージョン、msysGit 1.7.10 がリリースされました。

いよいよ Windows でも日本語ファイル名を扱えるようになったので、「git では "詳細設計仕様書.xlsx" をコミットできないんでしょ?」とブーブーいってた人を説得できる材料はそろいました!!!!

それを記念して、この記事では

  • UTF-8 対応の msysGit 1.7.10 を試してみた
  • ブーブーいう人を黙らせるための「GUI で git する Windows 向けツール」まとめ

の2本立てでお送りしたいと思います。

UTF-8 対応の msysGit 1.7.10 を試してみた

さっそく Google Code の msysGit から 1.7.10 をダウンロード。

インストールして、スタートメニューから [Git] > [Git Bash] を起動します。

日本語ファイル名を表示できるように次の設定をしておくことをお忘れなく。

$ git config [--global] core.quotepath off

日本語ファイル名の実験!

では早速、日本語ファイル名を含んだレポジトリーをとってきてみよう。

Github の toooooooby / japanese_test がちょうどいいので使ってみる。

$ git clone https://github.com/toooooooby/japanese_test.git
Cloning into 'japanese_test'...
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 43 (delta 21), reused 43 (delta 21)
Unpacking objects: 100% (43/43), done.

エクスプローラーで見ると…

おー! 日本語!!!

Git Bash でも…。

$ cd japanese_test/

$ ls
readme.textile                  ??????.txt
unko.txt                        ????????????SJIS.txt
???????????????UTF-8.txt        ????????????????????????
?????????????????????UTF-8.txt

あれ?

less を噛ませば大丈夫。

$ ls | less
readme.textile
unko.txt
噂のソフトUTF-8.txt
日本語ファイルUTF-8.txt
能知.txt
能表暴予SJIS.txt
表が怖いです!!

※ただし、フォントを MS ゴシックなどの日本語対応のものに変更しておく必要あり

(追記) ls --show-control-chars すれば less なしで日本語通りました。.bashrc に alias ls='ls --color=auto --show-control-chars' と定義しておくとよさそうです。(twitter で @hogelog さんに教えてもらいました)

vector から nkf Win32 版 を落としてきて確認してみると

$ ls | nkf -g
UTF-8

ファイル名の出力は内部的に UTF-8 になっていますね。less も UTF-8 に対応していることが分かります。

もちろんコミットログの日本語も問題なし。日本語ファイル名も余裕です!!!

$ git log --stat
commit b20cfb6454a69242d361fedb8927b8515b97e4f7
Author: toooooooby <example@example.com>
Date:   Tue Jul 27 01:08:20 2010 +0900

    テストテスト表が怖い噂の(ry@msysGit UTF-8

 unko.txt                 |    6 ++++++
 噂のソフトUTF-8.txt |   13 -------------
 2 files changed, 6 insertions(+), 13 deletions(-)

日本語ファイル名のコミットは少し厄介

日本語のファイルを作って git add を試してましょう。

しかし・・・Git Bash 上で日本語を入力できない・・・。IME の入力が無視されます(対処方法があればおしえてください)。

回避方法は、コマンドラインにこだわるなら xargs でファイル名を渡すか、MS-DOS を起動して git.exe を実行しましょう・・・。

>"c:\Program Files (x86)\Git\bin\git.exe" add テスト.txt

コマンドラインにこだわらないのであれば、msysGit と同時にインストールされるシェル エクステンション「git-cheetah」を使えばよいでしょう。エクスプローラーから右クリックで git addgit commit できます。

コミットメッセージに日本語を使うならエディターの設定は必須

いざコミット・・・としてみましたが、今度は msysGit 付属の vim が日本語表示できてるのに、IME からの日本語を受け付けてくれません。

仕方がないので、エディターを自分で設定しましょう。ここでは秀丸を設定してみます。

$ git config [--global] core.editor "\"C:/Program Files (x86)/Hidemaru/Hidemaru.exe\""

空白パスを含む場合は \" を忘れないように注意。

最初、メモ帳でやろうとしたけど、コミットメッセージの改行コードが LF のみでエディターに渡されていたので、メモ帳では改行を表示できませんでした。そこそこ高機能なエディターを選択しましょう。

コミット メッセージを UTF-8 で保存してエディターを終了します。

コミットしてログをみてみると・・・

$ git log --stat
commit 6c925290f271237da7e8508916e193f53ba9552a
Author: unknown <user@HOST.(none)>
Date:   Thu Apr 12 00:30:58 2012 +0900

    日本語コミットメッセージだよ。

    いけるかな???

 テスト.txt |    1 +
 1 file changed, 1 insertion(+)

はい、無事いけました。


ブーブーいう人を黙らせるための「GUI で git する Windows 向けツール」まとめ

コマンドラインに不慣れな人にも Git を使ってもらわなきゃいけない場合、GUI ツールの存在が気になります。

そんな人に使ってもらえそうな GUI で git するツールをまとめてみました。

git-cheetah

msysgit に付属するシェル拡張です。

エクスプローラーから右クリックしてのコミットや GUI でのヒストリーの確認など、一通りのことは実現できます。

カジュアルな使い方をする分にはこれで十分そうです。

GitHub for Windows

(2012/5/23 追記) GitHub が作成、公開している Windows 向けの Git クライアント「GitHub for Windows」です。GitHub の名前がついていますが、GitHub 以外の Git レポジトリを扱うこともできるようです。

Tortoise Git

TortoiseSVN で有名な Tortoise シリーズの「TortoiseGit」。TortoiseSVN をベースに git 用にカスタマイズしています。

しかし、msysGit 1.7.6 の利用を推奨しているため UTF-8 対応していません。草の根版でよいなら、msysgit の UTF-8 化に尽力した Karsten さんが TortoiseGit V1.7.5.0 をベースに UTF-8 対応させたパッケージが msysGit のメーリングリストに流れています(Issue 80: Unicode support on Windows 参照)。Tortoise にこだわりがあるなら、こちらを使ってもよいかもしれません。

ただ、残念ながら日本語化はされていません(昔に日本語化した人はいたが、現在はメンテされていない)。

(追記 2012/4/15) 新たな日本語化プロジェクト「TortoiseGit Japan」が開始したようです。日本語化パッチが配布されています。インストール手順も日本語で解説してあります。

Git Extensions

知名度は低いものの Git Extensions というツールもあります。

こちらは日本語の対応は完璧。msysgit 1.7.10 を利用すれば、ファイル名やコミットログを問題なく表示できるし、Git Bash で面倒だった日本語ファイル名のコミットも簡単です。

こちらは一部日本語化もされているので「英語を見ると吐き気がする」という人にも使ってもらいやすいです。UI は分かりにくいところも多いですが、Git の一通りの機能を Windows 的な UI で使うことができます。

最新の 2.31 には私が push リクエストしたコミットもいくつか取り込まれています(宣伝)。

Git Source Control Provider

Visual Studio をメインで開発しているなら Git Source Control Provider も便利そうです。

ソリューション エクスプローラー上からコミットしたり、git の状態をアイコンで表示してくれるようです。

EGit

Eclipse がメインの開発環境だよ、という人は EGit を試してみるとよさそうです。こちらは git の Java 実装である JGit を使っている模様です。

少し古いですが コラム】イマドキのIDE事情 (52) EclipseでGitを使おう! EGitを試してみる | エンタープライズ | マイナビニュース に紹介記事があります。この記事の内容が現在も妥当なのかどうかは Eclipse を使っていないので分かりません。

GitHub for Eclipse

GitHub が公開している Eclipse 用のプラグインです。http://eclipse.github.com/ で公開されています。

まとめ

  • msysGit 1.7.10 がリリースされて、いよいよ Windows で git できる環境が整った
  • GUI で git するツールもいくつかある
  • ついに git!!! git!!!
入門Git

入門Git

  • 作者: 濱野 純(Junio C Hamano)
  • 出版社/メーカー: 秀和システム
  • 発売日: 2009-09-19
  • メディア: 単行本
  • Amazon のレビューを見る
実用Git

実用Git