gitはデフォルトで改行コードの自動置換などを行うため、バイナリファイルに改行コードに該当する値が含まれている場合などにはファイルが破損してしまう。
そのような事態を防ぐためにはgitリポジトリのルートディレクトリ(.gitignoreなどと同じディレクトリ)に.gitattributesファイルを作成して、拡張子ごとにバイナリ指定する必要がある。
以下、記入例。
* text=auto
*.txt text
*.jpg binary
*.png binary
*.ico binary
*.svg binary
*.gif binary
*.wav binary
*.mp3 binary
.gitattributesは上から順に読み込まれるため、下の行が上の行の指定を上書きする形になる。
binaryを指定すると、-textと-diffが指定されたものと同様の設定となり、改行コードの自動置換およびDiffが実行されなくなる。