Git CRLF pour les utilisateurs de Windows

Je sais qu’il y a des tonnes d’articles sur ce sujet. Mais je me débat avec ça pendant quelques semaines sans succès.

J’essaie d’utiliser les meilleures pratiques décrites sur github . J’ai donc ajouté un fichier .gitatsortingbutes, par exemple, il ressemble à ceci:

*.cs text 

Et j’ai normalisé les fins de ligne pour tous les fichiers. Maintenant, j’ai une copie de travail propre avec rien à valider. Mais maintenant, si j’ouvre une amende dans n’importe quel éditeur de texte de Windows et que je fais des changements aléatoires, enregistrez le fichier, annulez cette modification. Je vois que ce fichier a été modifié. Je comprends que c’est parce que le fichier a maintenant des fins de ligne de style Windows. Mais c’est une façon horrible de travailler, le fichier n’a pas de modifications et je veux que git le sache sans git reset --hard . Que recommanderiez-vous dans un tel cas?

Si vous ne voulez pas que le style eol de vos fichiers soit remplacé par Windows, ne demandez pas à git d’effectuer une transformation “automagique”.
Donc, contrairement aux ” meilleures pratiques de GitHub “:

 git config --global core.autocrlf true 

Si vous avez vraiment (je veux dire vraiment ) besoin d’un ensemble spécifique de fichiers dans un répertoire spécifique pour obtenir un style eol particulier, ajoutez-le dans votre fichier .gitatsortingbutes dans ce répertoire, ce qui signifie qu’il n’utilise pas text=auto text eol=lf or crlf

La vraie question est la suivante: sur quoi travaillez-vous et avec qui?

À moins que vous ne travailliez sur OSS, toute cette confusion d’atsortingbut ne vaut pas la peine. Pour une organisation avec une équipe de personnes, désactivez les conversions automatiques de fin de ligne en définissant:

 core.autocrlf false 

Cela couvre la majorité des cas.

Si vous avez un sous-module sur GitHub, vous pouvez les définir pour chaque repo.