LF sera remplacé par CRLF in git – Qu’est-ce que c’est et est-ce important?

Duplication possible:
Git remplaçant LF par CRLF

Lorsque je crée une nouvelle application de rails, un avertissement relatif au remplacement de la LF apparaît. Je fais git init git add.

et puis boum! Je vois cette pop-up pour presque tous les fichiers. En général, je continue juste à créer mon application et celle-ci disparaît après plusieurs modifications apscopes aux fichiers.

Exemple:

Le fichier aura ses fins de ligne d’origine dans votre répertoire de travail. attention: LF sera remplacé par CRLF dans Gemfile.

Le fichier aura ses fins de ligne d’origine dans votre répertoire de travail. warning: LF sera remplacé par CRLF dans Gemfile.lock.

Le fichier aura ses fins de ligne d’origine dans votre répertoire de travail. attention: LF sera remplacé par CRLF dans README.

Quelle est la différence entre LF et CRLF?

Devrais-je m’en inquiéter à long terme ou simplement l’ignorer et continuer comme d’habitude?

Dans les systèmes Unix, la fin d’une ligne est représentée par un saut de ligne (LF). Dans Windows, une ligne est représentée avec un retour de chariot (CR) et un retour à la ligne (LF) ainsi (CRLF). Lorsque vous obtenez le code de git qui a été téléchargé depuis un système Unix, ils ne comportent qu’un fichier LF.

Si vous souhaitez désactiver cet avertissement, tapez-le dans la ligne de commande git

 git config core.autocrlf true 

Si vous voulez prendre une décision intelligente sur la façon dont git doit gérer cela, lisez la documentation

Voici un extrait

Formatage et espaces blancs

Le formatage et les problèmes d’espace sont quelques-uns des problèmes les plus frustrants et subtils que rencontrent de nombreux développeurs lorsqu’ils collaborent, en particulier entre plusieurs plateformes. Il est très facile pour les correctifs ou autres travaux collaboratifs d’introduire des modifications subtiles des espaces, car les éditeurs les introduisent silencieusement et, si vos fichiers touchent un système Windows, leurs fins de ligne peuvent être remplacées. Git a quelques options de configuration pour vous aider avec ces problèmes.

 core.autocrlf 

Si vous programmez sous Windows et travaillez avec des personnes qui ne le sont pas (ou vice-versa), vous rencontrerez probablement des problèmes de fin de ligne à un moment donné. Cela est dû au fait que Windows utilise à la fois un caractère retour chariot et un caractère de retour à la ligne pour les nouvelles lignes dans ses fichiers, alors que les systèmes Mac et Linux utilisent uniquement le caractère saut de ligne. C’est un fait subtil mais incroyablement agaçant du travail sur plusieurs plates-formes; de nombreux éditeurs sous Windows remplacent silencieusement les terminaisons de style LF existantes par CRLF ou insèrent les deux caractères de fin de ligne lorsque l’utilisateur appuie sur la touche Entrée.

Git peut gérer cela en convertissant automatiquement les fins de ligne CRLF en LF lorsque vous ajoutez un fichier à l’index, et inversement lorsqu’il extrait du code sur votre système de fichiers. Vous pouvez activer cette fonctionnalité avec le paramètre core.autocrlf. Si vous êtes sur une machine Windows, définissez-le sur true – cela convertit les terminaisons LF en CRLF lorsque vous extrayez du code:

 $ git config --global core.autocrlf true 

Si vous utilisez un système Linux ou Mac utilisant des fins de ligne LF, vous ne souhaitez pas que Git les convertisse automatiquement lorsque vous extrayez des fichiers. cependant, si un fichier avec une terminaison CRLF est accidentellement introduit, vous pouvez vouloir que Git le répare. Vous pouvez dire à Git de convertir CRLF en LF lors de la validation mais pas l’inverse en définissant core.autocrlf pour qu’il soit saisi:

 $ git config --global core.autocrlf input 

Cette configuration devrait vous laisser des terminaisons CRLF dans les extractions Windows, mais une terminaison LF sur les systèmes Mac et Linux et dans le référentiel.

Si vous êtes un programmeur Windows effectuant un projet Windows uniquement, vous pouvez désactiver cette fonctionnalité, en enregistrant les retours chariot dans le référentiel en définissant la valeur de configuration sur false:

 $ git config --global core.autocrlf false 

Si vous voulez, vous pouvez désactiver cette fonctionnalité dans votre configuration de base de git en utilisant

 git config core.autocrlf false 

Mais il serait préférable de se débarrasser des avertissements en utilisant

 git config core.autocrlf true