改行コードの自動変換 core.autocrlf core.safecrlf

テキストファイルの改行コードはWindowsではCR+LF、LinuxやMacではLFのため、Gitでは改行コードを自動で変換してくれる機能があります。

core.autocrlf

設定値動作
WindowsLinux・Mac
trueコミット時にCRLFからLFに変換
チェックアウト時にLFからCRLFに変換
inputコミット時にCRLFからLFに変換
チェックアウト時にLFからCRLFに変換
コミット時にのみCRLFからLFに変換
チェックアウト時には変換しない
false変換しない

SourceTreeなどのWindowsのGitツールは、デフォルトで『true』です。

設定変更は次のコマンドです。

git config --global core.autocrlf 【設定値】

改行コードが混在しているファイルを扱うとき

CRLFの自動変換の設定がされている場合、混在している改行コードがすべて統一されます。
この変換は不可逆のためバイナリファイルなどでは致命的です。

『core.safecrlf』を設定すると、コマンドを拒否したり警告を出したりできます。

core.safecrlf

設定値動作
true改行コードが混在していればコマンドを拒否する
warn改行コードが混在していれば警告を出しコマンドを実行する
false改行コードが混在していてもコマンドを実行する

WindowsのVirtualBoxで、共有フォルダのシェルを実行するとき

Linuxで改行コードがCR+LFのシェルファイルを実行するとエラーが出ることがあります。

: No such file or directory

Windowsでチェックアウト時に改行コードがCRLFに変換されたファイルを、VirtualBoxの共有フォルダでシェル実行する場合などに起こります。

関連記事

スポンサーリンク

文字コード表(コード対応表) 0x3

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る