.gitattributes ファイルで改行コードを制御できる
.gitattributes
ファイルを置いておくと、各自が ~/.gitconfig
で core.autocrlf
を設定していなくても、リポジトリ内の改行コードの扱いを統一できる。
$ man gitattributes
で確認できる公式サンプルの読み方。
* text=auto # 全てのファイルのうち、テキストと判断したファイルは LF に変換する
*.txt text # .txt ファイルは改行コード変換を行う (上のアスタリスク * 指定に倣うので LF に変換する)
*.vcproj text eol=crlf # .vcproj ファイルは強制的に CRLF に変換する
*.sh text eol-lf # .sh ファイルは強制的に LF に変換する
*.jpg -text # .jpg ファイルはテキストとして解釈しない
*.jpg -text
は安心のため入れてある感じ。なくても大概の場合は問題ないが、バイトコード中に CR に合致するコードが見つかった時にうっかり LF にされないようにしている。
とりあえず LF に揃えたいならこんな感じでいいんじゃないかな。特に text eol=lf
という明示は要らないかと。
.gitattributes
* text=auto
*.jpg -text
*.gif -text
*.png -text
この .gitattributes
や core.autocrlf
の変換タイミングは、git commit
時 (正確には git add
時か) と git checkout
時に行われる。