Git の core.autocrlf 設定してる?


プログラムのソースコードのバージョンを管理する為に, Git を使っている方たくさんおられると思います.

僕も使ってます.

他の人とコラボレートしたことがない僕が言うのもなんですが他の人たちとコラボレートする際には .gitconfig ファイルに設定しておいたほうがいい項目があるようです.

それは core.autocrlf というものです.

これはソースコードの各行末の見えない文字 EOL をコントロールする為の設定です.

Mac, Linux を使っている人だったら EOLLF となります.

Windows を使っている人だったら CRLF となります.

このように使う OS によって使われる EOL が異なるので, 他の人たちとコラボレートするときに何も設定していないと問題になるようです.

僕は Mac を使っているので次のように設定しました.

git config --global core.autocrlf=input

core.autocrlf=inputEOLCRLF のファイルをコミット時に不可逆的に LF に変換します.

ファイルの EOLLF で一貫させたい Linux や Mac で推奨されます.

Git を Mac や Linux で使われている方でしたら少なくとも core.autocrlf=input の設定をされることをお勧めします.

あと次のような安全機構的な設定もあります.

git config --global core.safecrlf=true

core.safecrlf=trueEOLCRLF のファイルを不可逆的に LF に変換するオペレーションを中断させます.

なので core.autocrlf=input が設定されていて通常なら CRLF から LF へ不可逆的に変換されていたであろう状況を作りません.

自動的に CRLFLF に変換したくない人はこの core.safecrlf=true を設定してみるといいと思います.

他の人たちとのコラボレーションを考えている方でまだ設定していない方はこれらの設定をしてみてください.

あと例えば Web 上で公開されているスニペットをコピーした時に CRLF が含まれていても, コミットした際に LF に変換してくれたり中断してくれたりするのでコラボレーションを考えてない方も Git を Mac や Linux で使っている方は上のような設定をされることをお勧めします.

EOL は大事なコードの一部だと思いますので, ぜひ core.autocrlf を設定してみてください.