GIT n'aurait PAS commun SHA1 est pour deux fichiers texte à l'identique le texte, mais différents de fin de ligne(EOL) des mécanismes à l'intérieur de la représentation binaire. Le contenu est stocké sous forme d'un blob, qui est réutilisé si une autre , identique copie est dé-posé dans le référentiel (économie d'espace!)
Le choix par défaut prises par le (la) GIT (designers) est d'utiliser les *nix style de caractère de fin de ligne (LF seulement) chaque fois que possible, de sorte que, pour le même texte, le contenu , vous obtenez le même SHA1. (probablement un facteur important ;-)
Parce que le contenu/blob ne se souvient plus de l'origine de l'utilisateur EOL choix (n'oubliez pas c'est peut-être maintenant dans un lointain référentiel) , Git a à faire quelques suppositions (option de base) sur la façon de recréer l'original de l'utilisateur du fichier (c'était CRLF ou était-ce simplement LF) dans une manière que vous (et vos outils) peuvent utiliser.
La normale recommandation est que, localement, chaque utilisateur (a) convertit les *nix LF terminaisons au moment de la validation dans un blob (donc tous les verrez commune SHA1 blob noms) (a/k/a de la bonne Chose), et (b) locaux de la re-création de l'option à leur système de réglage par exemple, *nix(LF) ou Windows(CRLF), etc.
Définir certaines normes locales pour vos utilisateurs, et ont un gros 'EOL/LF/CRLF & Espaces de Correction commit", et vous serez bien (en plus de la formation de la re-formation des nouveaux utilisateurs)
Vous pouvez aussi, assurez-vous (chaque utilisateur) utilise une commune des blancs-ajustement de l'espace de sorte que les onglets v les espaces et les espaces ne cause pas plus d' diff
inconvénients!