改行コードの自動変換 core.autocrlf core.safecrlf
テキストファイルの改行コードはWindowsではCR+LF、LinuxやMacではLFのため、Gitでは改行コードを自動で変換してくれる機能があります。
core.autocrlf
設定値 | 動作 | |
---|---|---|
Windows | Linux・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の共有フォルダでシェル実行する場合などに起こります。
関連記事
- Gitを自動的にpullする方法(常に最新の状態にする)
- Gitの最新版をインストールする方法(CentOS7に2系をインストール)
- SSHで初めて接続するホストで、接続するかどうかyes/noを聞かれないようにする
- yumのius(iuscommunity.org)でエラーが出る場合
- シェル実行などでSSHキーを読めない場合
スポンサーリンク