Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

WindowsでGitを使うには

とても面倒。ほんと面倒。
できるだけこのOSは使いたくない。ほんと使いたくない。
GNU/Linuxディストリビューションのどれかでいい。
仕事であんまりMacである必要ないしね。


とは言うものの、.NETだったりしたらしょうがない。ほんとしょうがない。


WindowsのGitクライアントであるGit for Windows は、ファイル名の扱いに問題があるらしく、こちらを使わせてもらいます。
UTF-8ファイル名対応版 Git for Windows
http://tmurakam.org/git/

Git Bashで基本設定します。

$ git config --global user.name "jyuktyo"
$ git config --global user.email jyukutyo@example.com
$ git config --global i18n.logOutputEncoding cp932
$ git config --global core.pager "LESSCHARSET=utf-8 less" 
$ git config --global core.quotepath false

環境変数HOMEを任意のディレクトリに設定する。


コミットログで日本語を入力できるようにする。
HOME\.gitconfigに追記する。

[core]
    editor = 'C:/Program Files (x86)/sakura/sakura.exe' -CODE=4

CODE=4はUTF-8のオプション。


Git Bashで日本語を表示できるようにする。
GIT_HOME\etc\inputrcを編集する。

# disable/enable 8bit input
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set kanji-code utf-8

pullしようとしたら、「Your local changes to the following files would be overwritten by merge」と出た。
こちらを参考にさせていただいて、解決した。

git diff をしたときに

old mode 100755
new mode 100644
のようにファイルモード(パーミッション)の変更だけが出る場合はたぶんこの問題です。

これに対処するには、

>git config core.filemode false
としてやることで、ファイルモードの変更は無視され、pull や merge ができるようになります。

http://d.hatena.ne.jp/naga_sawa/20101220/1292806729