Ce n'est pas vraiment possible de répondre à cette question avec le droit ", mais" sans expliquer pourquoi il n'est pas un problème. Il n'est pas possible de le faire sans vraiment avoir une bonne prise sur ce qu'est un hachage est vraiment. C'est plus compliqué que le simple cas, vous pourriez avoir été exposé à un tig.
Il y a un contresens fondamental de la théorie de l'information ici. Si vous réduisez une grande quantité d'informations dans un plus petit montant en jetant une certaine quantité (ie. une table de hachage) il y aura une chance de collision directement liée à la longueur des données. La plus courte des données, le MOINS il sera. Maintenant, la grande majorité des collisions sera incompréhensible, les rendant ainsi beaucoup plus de chances de se produire (vous ne serait jamais vérifier dans le charabia...même une image binaire est un peu structuré). En fin de compte, les chances sont minces. Pour répondre à votre question, oui, git va les traiter comme de la même, la modification de l'algorithme de hachage ne va pas aider, il va prendre un "deuxième chèque" d'une certaine sorte, mais en fin de compte, vous avez besoin de plus de "vérification supplémentaire de données", comme la longueur des données pour être sûr à 100%...garder à l'esprit que vous serait 99.99999....pour un certain nombre de chiffres.... sûr qu'avec une simple case comme vous décrivez. SHA-x sont des hachages cryptographiques, ce qui signifie que est généralement pas difficile de créer intentionnellement de deux ensembles de données sources qui sont à la fois TRÈS SEMBLABLES les uns aux autres, et ont le même hash. Un peu de changement dans les données devraient créer plus d'un (de préférence autant que possible) les bits de changement dans la valeur de hachage de sortie, ce qui signifie aussi qu'il est très difficile (mais pas impossible) à partir de la valeur de hachage de l'ensemble des collisions, et donc de sortir le message original à partir de cet ensemble de collisions tous, mais quelques-être du charabia, et de celles qui ne le sont pas, il ya toujours un grand nombre de passer au crible si la longueur du message est d'une durée significative. L'inconvénient d'une crypto de hachage, c'est qu'ils sont lents à calculer...en général.
Alors, qu'est-ce que tout cela signifie alors pour Git? Pas grand-chose. Les valeurs de hachage se fait donc rarement (par rapport à tout le reste) que leur calcul de la pénalité est faible dans l'ensemble des opérations. Les chances de tomber sur une paire de collisions est donc faible, ce n'est pas une chance réaliste de se produire et ne pas être détectés immédiatement (ie. votre code serait le plus susceptible d'arrêter brusquement de la construction), permettant à l'utilisateur de résoudre le problème (sauvegarder une révision, et d'apporter une modification à nouveau, et vous aurez presque certainement obtenir un hachage différent à cause du changement d'heure, qui alimente aussi le hachage dans git). Il n'y a plus de chances pour qu'il soit un réel problème pour vous si vous stockez des fichiers binaires arbitrairement dans git, ce qui n'est pas vraiment ce que c'est l'utilisation principale du modèle est. Si vous voulez le faire...vous êtes probablement mieux d'utiliser une base de données traditionnelle.
Il n'est pas mal de penser à ce sujet - c'est une bonne question que beaucoup de gens il suffit de passer "donc peu probable que cela ne vaut pas la peine de penser à" - mais c'est vraiment un peu plus compliqué que cela. Si c'est le cas, il devrait être très facilement détectables, ce ne sera pas un silencieux de la corruption dans un flux normal.