Cómo registra Git (o más probablemente, representa) las rutas y los nombres de archivo para sus blobs, y luego identifica los cambios de nombre?

Estoy tratando de entender cómo Git logra 'recordar' el nombre de un archivo y su ruta, dado que solo almacena el contenido del archivo dentro de un blob. Es la explicación enlink here por Abizem una buena? (Es lo mejor que he visto hasta ahora)

La pregunta de seguimiento es: ¿cómo determina (dónde) git cuándo tenemos similitud, especialmente después de una actualización de 'movimiento' o nombre de ruta? (según mi Q subdirectorio renombra). Necesito poder mantener un flujo de trabajo existente que utilice los cambios de nombre de ruta como parte de un VCS personal de bajo nivel (tenemos un gran VCS de hierro para grandes lanzamientos, pero nada para el uso diario / hora a hora)

Respuestas a la pregunta(2)

Su respuesta a la pregunta