Presque quatre ans après avoir posé cette question, j'ai finalement trouvé une réponse qui me satisfait pleinement !
Voir les détails dans github:help Le guide de la Gérer les fins de ligne .
Git vous permet de définir les propriétés de fin de ligne pour un repo directement en utilisant la commande attribut du texte i .gitattributes
fichier. T le repo et remplace le fichier core.autocrlf
la mise en place, vous permettant de garantir un comportement cohérent pour tous les utilisateurs, quels que soient leurs paramètres git.
Et ainsi
T de fin de ligne voyage maintenant avec votre référentiel et vous n'avez pas besoin de vous soucier de w ont les paramètres globaux appropriés.
Voici un exemple de .gitattributes
fichier
# Auto detect text files and perform LF normalization
* text=auto
*.cs text diff=csharp
*.java text diff=java
*.html text diff=html
*.css text
*.js text
*.sql text
*.csproj text merge=union
*.sln text merge=union eol=crlf
*.docx diff=astextplain
*.DOCX diff=astextplain
# absolute paths are ok, as are globs
/**/postinst* text eol=lf
# paths that don't start with / are treated relative to the .gitattributes folder
relative/path/*.txt text eol=lf
Il y a une collection de fichiers .gitattributes prêts à être utilisés pour les langages de programmation les plus courants. Il est utile pour vous aider à démarrer.
Une fois que vous avez créé ou modifié votre .gitattributes
vous devriez effectuer une fois pour toutes re-normalisation des fins de ligne .
Notez que le Bureau GitHub L'application peut suggérer et créer un .gitattributes
après avoir ouvert le dépôt Git de votre projet dans l'application. Pour essayer cela, cliquez sur l'icône de l'engrenage (dans le coin supérieur droit) > Paramètres du dépôt ... > Fin de ligne et attributs. Il vous sera demandé d'ajouter l'attribut recommandé .gitattributes
et si vous acceptez, l'application effectuera également une normalisation de tous les fichiers de votre dépôt.
Enfin, le Attention à l'extrémité de votre ligne L'article fournit plus de contexte et explique comment Git a évolué sur les questions qui nous occupent. Je considère que lecture obligatoire .
Vous avez probablement des utilisateurs dans votre équipe qui utilisent EGit ou JGit (des outils comme Eclipse et TeamCity les utilisent) pour valider leurs modifications. Dans ce cas, vous n'avez pas de chance, comme l'explique @gatinueta dans les commentaires de cette réponse :
Ce paramètre ne vous satisfera pas complètement si vous avez des personnes travaillant avec Egit ou JGit dans votre équipe, puisque ces outils ignoreront simplement les attributs .git et vérifieront joyeusement les fichiers CRLF. https://bugs.eclipse.org/bugs/show_bug.cgi?id=342372
Une astuce pourrait être de leur demander de valider leurs modifications dans un autre client, par exemple SourceTree . Notre équipe de l'époque préférait cet outil à EGit d'Eclipse pour de nombreux cas d'utilisation.
Qui a dit que les logiciels étaient faciles ? :-/