大きく分けて以下の3つあります。今回は改行の扱いを .gitattributes で指定します。
・バイナリファイルの diff を表示する
・改行文字の扱いを設定する
・Linguist の扱いを設定する
プロジェクトのトップに .gitattributes ファイルを以下の内容で保存します。
* text=auto
*.txt text
*.bat text eol=crlf
*.php text eol=crlf
*.js text eol=lf
*.jpg binary
*.png binary
*.gif binary
*.mp4 binary
.bat と .php を CRLFにします。
.js をLF に指定します。
Linuxのシェルの改行コードがLFではないと、実行できません。
逆にWindowsのコマンドスクリプトの改行コードがCRLFではないと、実行出ません。
.gitattributes で改行コードを指定する
以下のように設定すると、clone や pull したときは CRLF にして push するときに LF にすることができますが、 拡張子ごとに細かい指定はできません。
git config --global core.autocrlf true