Git Academy

Intermédiaire · 4 min de lecture

Fins de ligne : LF, CRLF et .gitattributes

Pourquoi un fichier apparaît entièrement modifié alors que tu n'y as pas touché.

Le problème

Windows termine les lignes par CRLF, Linux et macOS par LF. Mélange les deux et chaque ligne paraît modifiée dans le diff.

Régler la question pour toute l'équipe

Un fichier .gitattributes à la racine l'emporte sur la config personnelle de chacun. Stocke le texte en LF, et déclare les fichiers binaires.

Sans risque
$ printf '* text=auto eol=lf\n*.png binary\n' > .gitattributes

Corriger les fichiers déjà commités

Renormalise tout une fois, dans un commit dédié.

Sans risque
$ git add --renormalize .
$ git commit -m "chore: normalize line endings"