GitでShift-JISファイルを扱う際の文字化け防止ツールです。
Shift-JISファイルが含まれるプロジェクトでgit diffやgit showを実行すると、日本語部分が文字化けしてしまいます。このツールセットを使用することで、文字コードを自動判別して適切にUTF-8変換し、文字化けを防ぐことができます。
git_sjis_diff.sh: 文字コード判別・変換スクリプト.gitattributes.example: 設定例ファイル
git_sjis_diff.sh を任意のディレクトリに配置し、実行権限を付与します。
chmod +x git_sjis_diff.shgit config --global diff.sjis-safe.textconv "/path/to/git_sjis_diff.sh"プロジェクトルートに .gitattributes ファイルを作成し、Shift-JISファイルに対してフィルターを適用します。
cp .gitattributes.example .gitattributes必要に応じて、対象ファイルの拡張子を追加・削除してください。
セットアップ完了後、通常通り git diff や git show を実行すると、Shift-JISファイルが文字化けすることなく表示されます。
git diff
git show HEAD
git log -p- Gitがdiffを表示する際、
.gitattributesの設定に基づいてgit_sjis_diff.shが呼び出される - スクリプトが
nkf -gコマンドでファイルの文字コードを自動判別 - Shift-JIS(CP932)の場合のみ
nkf -wでUTF-8に変換して出力 - その他の文字コードの場合はそのまま出力
nkf(Network Kanji Filter)- macOS:
brew install nkf - Ubuntu:
sudo apt install nkf
- macOS:
- スクリプトに実行権限が付与されているか確認
- Git設定が正しく登録されているか確認:
git config --list | grep textconv .gitattributesファイルが正しく配置されているか確認- 対象ファイルが
.gitattributesの設定に含まれているか確認
.gitattributes で対象ファイルを限定することで、パフォーマンスへの影響を最小限に抑えることができます。全ファイルに適用すると処理が重くなる可能性があります。