1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker環境でGitの日本語コミットメッセージが文字化けする問題の解決まで

Posted at

Dockerコンテナ内でGitを使っている際に、日本語コミットメッセージが文字化けする問題に相対した際の解決方法をまとめました。以下の手順を実行することで解決できます。

問題の現象

  • Gitで日本語コミットメッセージを使用すると文字化けする。
  • git log の出力が、UTF-8の文字化け表示になる。
  • Nanoを使ったコミットメッセージで文字化けが起こる。

解決手順

正しいロケールを設定

まず、Dockerコンテナ内のロケールを確認します。

echo $LANG

正常な状態では、次のように en_US.UTF-8ja_JP.UTF-8 が返されます。

その他の値が返された場合は、以下のようにロケールをUTF-8に設定しましょう。

export LANG=C.UTF-8

これで一時的にロケールがUTF-8に設定されます。

この状態で、日本語コミットメッセージを再度試してください。

git commit --allow-empty -m "テスト用の日本語メッセージ"
git log

これで文字化けが解決されていることを確認しましょう。

永久的な設定

Dockerコンテナを再起動しても設定が保存されるようにするため、次の手順で .bashrc に追記します。

  1. .bashrc に追記

    echo 'export LANG=C.UTF-8' >> ~/.bashrc
    
  2. 設定を反映

    source ~/.bashrc
    

これで、次回コンテナを再起動しても文字化けが発生しなくなります。

Nanoでの文字化け問題の解決

Gitコミット時にNanoが開いた際、日本語が文字化けする場合は、Nano自身でUTF-8を正しく扱えていないことが原因です。下記手順で解決できます。

Nanoのアップデート

Nanoが古いバージョンの場合、UTF-8のサポートが不完全なため、アップデートが必要です。

apt update && apt install -y nano

Gitのデフォルトエディタを変更

Nanoでの問題が解決しない場合、Gitのデフォルトエディタを vimcode に変更することで解決できます。

Vimを使う場合

  1. Vimのインストール

    apt update && apt install -y vim
    
  2. GitのエディタをVimに設定

    git config --global core.editor "vim"
    

VSCodeを使う場合

git config --global core.editor "code --wait"

おわりに

Dockerコンテナ内で日本語コミットメッセージが文字化けする問題は、ロケールの設定やエディタの変更で解決できます。同様の問題に相対している方の参考になれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?