Integridad de los datos.
Respetuosamente estoy en desacuerdo con las respuestas actuales. Los hash no son necesarios para un DVCS, consulte la forma Bazaar . Podría hacerlo también con cualquier otro tipo de identificador único global. Los hashes son una medida para garantizar la integridad de los datos: representan un resumen de la información contenida en el objeto (commit, trees, ...) al que hace referencia el hash. Modificar los contenidos sin alterar el hash (es decir, un ataque de preimagen o ataque de colisión ) se cree que es difícil, aunque no imposible. (Si está realmente interesado, eche un vistazo al documento de 2011 de Marc Stevens ) .
Por lo tanto, al referirse a los objetos por su hash SHA, se puede verificar si los contenidos han sido manipulados. Y, dado que (casi) se garantiza que son únicos, también se pueden usar como identificadores de revisión, convenientemente.
Consulte el Capítulo 9 del libro de Git para obtener más detalles.