Pro Git
Pro Git Generalmente, de ocho a diez caracteres son más que suficientes para ser únicos en un proyecto.
Como un ejemplo, el kernel Linux, que es un proyecto bastante grande con alrededor de 450 mil “commits” y 3.6 millones de objetos, no tiene dos objetos cuyos SHA-1s se superpongan antes de los primeros 11 caracteres.
Mucha gente se preocupa de que en cierto momento, fruto del azar, tendrán dos objetos en su repositorio cuyos hash tendrán el mismo valor SHA-1. Pero, ¿entonces qué?
Si sucede que realizas un “commit” y el objeto tiene el mismo hash que un objeto previo en tu repositorio, Git verá el objeto previo en tu base de datos y asumirá que ya estaba escrito. Si intentas mirar el objeto otra vez, siempre tendrás la data del primer objeto.
Sin embargo, debes ser consciente de cuán ridículamente improbable es este escenario. El digest SHA-1 es de 20 bytes o 160 bits. El número de objetos aleatorios necesario para asegurar un 50% de probabilidades de una única colisión bordea el 280 (la fórmula para determinar la propabilidad de colisión es p = (n(n-1)/2) * (1/2^160)). 280 es 1.2 x 1024 o 1 millón de millones de millones. Esto es 1,200 veces el ńumero de granos de arena en la Tierra.
