まず、前提としてレポジトリに 入れるのは LF のみが良いようです。
core.autocrlf
という git の global オプションで改行コードの自動変換を設定できます。
-
true
: コミット時に CRLF -> LF。チェックアウト時に LF -> CRLF。 -
input
: コミット時にのみ CRLF -> LF に変換。Windows の場合のみtrue
と同じ。 -
false
: 変換しない。
では、自動変換をするべきか?
する派
Windows, Mac, Linux で以下の設定。
設定を追加
git config --global core.autocrlf input
git config --global core.safecrlf true
core.safecrlf
は、改行コードが混在している場合は変換しないというオプション。
しない派
ツールの設定をすれば、自動変換は必要ない。バイナリ等、いろいろな問題の原因になるため。
ファイルの種類ごと派
.gitattributes で設定する。共同開発者の global 設定に左右されない。
その他
たまに改行コードが ^M
(CR のみ)になり、diff で全てのコードが一行になってしまうことがあります。これは自動変換してくれないので、手動で直しましょう。