Git remplace LF par CRLF

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Git remplace LF par CRLF

Message par ForumBot »

Git remplace LF par CRLF

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Git remplace LF par CRLF

Message par ayi »

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


x est soit CRLF (style Windows) soit LF (style Unix) et les flèches représentent


file to commit

*(Réponse tronquée)*
Répondre

Revenir à « GitHub Copilot »