¿Cómo garantiza git que las claves SHA de confirmación para operaciones / datos idénticos siguen siendo únicas?

Si creo un archivofoo contouch foo y luego corrershasum foo se imprimirá

da39a3ee5e6b4b0d3255bfef95601890afd80709.

No importa con qué frecuencia corroshasum foo o si lo ejecuto en una computadora diferente, siempre imprimiráda39a3ee5e6b4b0d3255bfef95601890afd80709 porque, sí, es la representación SHA1 de exactamente el mismo contenido. Contenido vacío en este caso :)

Sin embargo, si hago los siguientes pasos:

cd /some/where
mkdir demo
git init
touch foo
git add -A
git commit -m "adding foo"

..y recuerde la clave SHA delcometer (p.ej.959c363ed4cf147725360532454bc258c964c744)

Ahora, cuando borrodemo y repita exactamente los mismos pasos, aún elcometer La clave SHA será diferente. Y eso es genial y es importante aseguraridentidad.

Sin embargo, lo que me gustaría saber es qué hace exactamente git para garantizar que los hash de confirmación siempre sean únicos, incluso si realizan exactamente las mismas operaciones con exactamente el mismo contenido. ¿Git simplemente usa algo comouuidgen para generar una identificación única para el objeto commit o hace algo diferente en función de una combinación de marca de tiempo, su dirección mac, sus señales wifi, etc. pp.

Respuestas a la pregunta(4)

Su respuesta a la pregunta