gitでdiffの文字コードのみShift JISに設定する

課題

  • Source Treeでgitを使用
  • 歴史的経緯でShift JISのファイルがある
  • diffが文字化けする
  • [ツール]→[オプション]から「デフォルトの文字コード」を「shift_jis」にしてしまうとコミットログなどもShift JISになってしまう。(過去にutf-8で書かれたログが文字化けしてしまう。)
  • 特定のファイルのdiffのみShift JISに設定したい

方法

.gitattributes ファイルをリポジトリのフォルダ直下に作成し、下記の要領で文字コードを指定する。

*.c diff=sjis
*.h diff=sjis

.git/config に次の2行を追記する。(編集する前にSource Treeを閉じておくこと。)

[diff "sjis"]
    textconv = iconv -f sjis

参考