SEEDS Creator's Blog

読者です 読者をやめる 読者になる 読者になる

Windowsでgitを使う場合の改行コード自動変換がうざい

MACWindows、両方を使って開発しているといろいろ苦しめられるところがあって 特に改行コードが辛い。

顕著なのはシェルスクリプトCGIプログラムで、 Windowsで作ったりgit pullしてきたシェルスクリプトはCRLFになるので、 そのまま仮想サーバからマウントして利用したりすると改行コードの問題で正常に動かない。 具体的には1行目のシェバンが改行コードのせいでシェバンと認識してくれないせいで正常に動かなくなります。 (FTP等を利用した場合はFTPクライアントがLFに自動的に変換してくれる)

そこで、Windowsの場合はCRLFからLFに変換する必要があるのだけど変換するとgitでこんなエラーが出るようになります。

warning: LF will be replaced by CRLF in ファイル名 

どうやらWindowsの場合はgitがCRLFに自動的に改行コードを変換してくるらしい。 以下を実行する事でこの自動変換をOFFにする事が出来る。

git config --global core.autoCRLF false

実際の設定はホームディレクトリ(C:\Users\ユーザー名)のディレクトリに「.gitconfig」というファイルが作られます。

[user]
    name = hoge
    email = hogehoge@seeds-std.co.jp
[core]
    autoCRLF = false

この設定を行えばLFに変換してもgitがCRLFに変換してくる事がなくなります。