Git remplace LF par CRLF
Ces messages sont dus à une valeur par défaut incorrecte de core.autocrlf sous Windows.
Le concept d’autocrlf est de gérer les conversions de fin de ligne de manière transparente. Et il le fait !
Mauvaise nouvelle : la valeur doit être configurée manuellement.
Bonne nouvelle : cela ne doit être fait qu’une seule fois par installation de Git (un paramètre par projet est aussi possible).
Comment fonctionne autocrlf :
core.autocrlf=true: core.autocrlf=input: core.autocrlf=false:
repository repository repository
^ V ^ V ^ V
/ \ / \ / \
crlf->lf lf->crlf crlf->lf \ / \
/ \ / \ / \
Ici crlf = marqueur de fin de ligne style Windows, lf = style Unix (également utilisé sur Mac depuis Mac OS X).
(Le cr pré-OSX n’est pas affecté pour aucune des trois options ci-dessus.)
Quand cet avertissement apparaît-il (sous Windows) ?
-- `autocrlf` = `true` si vous avez des `lf` de style Unix dans l'un de vos fichiers (= RAREMENT),
-- `autocrlf` = `input` si vous avez des `crlf` de style Windows dans l'un de vos fichiers (= presque TOUJOURS),
-- `autocrlf` = `false` -- JAMAIS !
Que signifie cet avertissement ?
L’avertissement “LF will be replaced by CRLF” dit que vous (ayant autocrlf=true) perdrez vos LF de style Unix après un cycle commit-checkout (ils seront remplacés par des CRLF de style Windows). Git ne s’attend pas à ce que vous utilisiez des LF de style Unix sous Windows.
L’avertissement “CRLF will be replaced by LF” dit que vous (ayant autocrlf=input) perdrez vos CRLF de style Windows après un cycle commit-checkout (ils seront remplacés par des LF de style Unix). N’utilisez pas input sous Windows.
Encore une autre façon de montrer comment fonctionne autocrlf
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
où x est soit CRLF (style Windows) soit LF (style Unix) et les flèches représentent
file to commit
*(Réponse tronquée)*