GIT : gestion des CR-LF sous Windows
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.