はじめに
こんにちは。T.H.です。
今回は、gitの小ネタです。
前提
プログラムコードの文字コードがShift-jisの環境下で必要な設定です。
レガシーなWindows&C++の環境を想定しています。
設定方法
Shift-jis環境下でgitの操作を行うと、日本語表示が化けるという現象が起きます。
これは、gitが基本的にutf-8を前提にしているためです。
gitのconfigファイルおよび、.gitattributeファイルに下記設定を行うことで解消が可能です。
恐らくはどのgitクライアントでも問題なく表示されるようになると思われます。
config
[core]
quotepath=false
pager = LESSCHARSET=utf-8 less
[diff "cp932"]
textconv=iconv -f cp932 -t utf-8
[diff "sjis"]
textconv=iconv -f sjis -t utf-8
.gitattribute (gitリポジトリ内に作成)
*.txt diff=sjis
*.c diff=cp932
*.cpp diff=cp932
*.h diff=cp932
*.txt working-tree-encoding=sjis
*.cpp working-tree-encoding=cp932
*.c working-tree-encoding=cp932
*.h working-tree-encoding=cp932
なお、configの
[i18n]
commitEncoding
の設定項目はいかにもそれっぽいですが、こちらはコミットメッセージのエンコード指定です。通常の開発ではコミットメッセージまで文字コードが指定されていることは稀だと思います。
最後に
最近ではShift-jis環境の開発自体に触れることも少なくなってきたかと思います。
ですが、何かのきっかけでアサインされたときに戸惑う方も多そうなため、ちょっとしたメモとして記載させていただきました。