Según tengo entendido, cuando Git asigna un hash SHA1 a un archivo, este SHA1 es único para el archivo en función de su contenido.
Como resultado, si un archivo se mueve de un repositorio a otro, el SHA1 para el archivo permanece igual ya que su contenido no ha cambiado.
¿Cómo calcula Git el resumen de SHA1? ¿Lo hace en el contenido completo del archivo sin comprimir?
Me gustaría emular la asignación de SHA1 fuera de Git.