GIT : gestion des CR-LF sous Windows

De knowledge
Aller à la navigation Aller à la recherche

GIT : gestion des CR-LF sous Windows

Problème

Sous Windows, Git peut afficher des messages du type :

warning: in the working copy of 'fichier.py',
LF will be replaced by CRLF the next time Git touches it

Ce message indique que le dépôt contient des fins de ligne au format Unix (LF) alors que Git est configuré pour les convertir en format Windows (CRLF) dans la copie de travail.

Cela n'empêche pas le fonctionnement de Git mais génère des avertissements fréquents et peut provoquer des modifications inutiles dans les commits.

Solution recommandée

A mon avis il est préférable de conserver le format LF partout, y compris sous Windows (de toute façon qui programme sous Windows si il n'y est pas obligé).

Vérifier la configuration actuelle :

git config --show-origin --get core.autocrlf

Désactiver la conversion automatique :

git config --global core.autocrlf false

Forcer l'utilisation du format LF :

git config --global core.eol lf

Normalisation du dépôt

Si des fichiers ont déjà été convertis, demander à Git de les renormaliser :

git add --renormalize .

Puis créer un commit :

git commit -m "Normalize line endings"

Vérification

Afficher la configuration :

git config --global --list

Résultat attendu :

core.autocrlf=false
core.eol=lf

Avantages

  • Comportement identique sous Windows, Linux et macOS (oui y'en a encore).
  • Plus d'avertissements concernant les conversions LF/CRLF.
  • Évite les modifications parasites dans les commits.
  • Compatible avec les outils modernes de développement.
  • Réduit les problèmes dans les conteneurs Docker, les pipelines CI/CD et les environnements Linux.

Remarque

Cette configuration est particulièrement adaptée aux projets contenant principalement :

  • Python
  • JSON
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • YAML
  • Fichiers de configuration

Les scripts spécifiquement destinés à Windows (BAT, CMD, PowerShell) peuvent néanmoins fonctionner correctement même lorsque le dépôt est stocké en LF.